m038
461df550a1
docs: document ascending/descending sort order difference between trip page and home feed
2026-06-21 11:08:22 +02:00
m038
0ba479c7c9
test(home): document H4 coordinate dependency
2026-06-21 01:51:36 +02:00
m038 and Claude Sonnet 4.6
c862827ac2
test(home): add H2–H5 between-trips highlights Playwright tests
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 01:48:46 +02:00
m038
0c924139b1
test(maps): add M8 — home map GPX source on active trip
2026-06-21 01:43:27 +02:00
m038 and Claude Sonnet 4.6
e9cd9c5946
docs: add homepage redesign implementation plan
...
3-task plan: blueprints/config, active-trip GPX on home map,
between-trips highlights grid with Playwright tests H2–H5 and M8.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 01:32:47 +02:00
m038 and Claude Sonnet 4.6
3d9aa306dc
docs: add homepage redesign spec
...
Covers dual-mode homepage (active trip vs between-trips highlights),
persistent map with GPX in active mode, featured flag on entries/stories,
tagline field on trips, and Admin2 site config blueprint.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 01:18:43 +02:00
m038 and Claude Sonnet 4.6
a1dbc2ea34
docs: add story editing research note
...
Records brainstorming findings: Snow Fall block vocabulary, 15 options
evaluated, Admin2 JS injection blocker, Grav vs Keystatic comparison.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01WPJztrVGbwic2xTG7G9fjM
2026-06-20 23:25:40 +02:00
m038 and Claude Sonnet 4.6
b9e0e39402
fix: make demo-load writable, fix photo strip a11y, fix M7 marker click
...
- Makefile: add chown 1000:1000 after demo-load so Grav can create entries
- Makefile: add collection config to demo dailies.md (page.collection() needs it)
- base.html.twig: add tabindex="0" to journal-photo-strip for keyboard access (AX1-AX3)
- maps.spec.js: use force:true on M7 marker click (start/end overlap at Campiglia)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-20 22:12:33 +02:00
m038 and Claude Sonnet 4.6
9c2177600c
test: switch all test fixtures from japan-korea-2026 to italy-2026-demo
...
- Replace all japan-korea-2026 URL references in test files
- dailies.spec.js: update KNOWN_SLUG/TITLE/CITY/COUNTRY to first campiglia entry
- accessibility.spec.js: update AX4 entry URL to campiglia entry
- helpers.js: update TRACKER_DIR to italy-2026-demo dailies
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-20 22:00:45 +02:00
m038 and Claude Sonnet 4.6
1588902dd3
docs: fix demo-reset description in CLAUDE.md (removes full trip folder)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-20 21:45:55 +02:00
m038
26c91fcc38
test(stories): update story slugs to match new demo content
2026-06-20 21:18:08 +02:00
m038
cdd9e0c8b3
docs: update demo-load description in CLAUDE.md
...
Reflects that demo now targets a single trip (italy-2026-demo / Tuscany 2026)
rather than the old Japan/Korea 2026 + Italy 2025 pair.
2026-06-20 21:15:21 +02:00
m038 and Claude Sonnet 4.6
acdf3edb3d
docs: add demo data redesign implementation plan
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-20 21:08:08 +02:00
m038
d13e4dffb8
test(a11y): add A3e-A3f cycling toggle aria-expanded tests (italy-2026-demo)
2026-06-20 20:57:46 +02:00
m038
5cfd3a8d85
feat(a11y): add axe-core WCAG 2.1 AA regression scans (AX1-AX5) and fix active filter button contrast
2026-06-20 20:49:33 +02:00
m038 and Claude Sonnet 4.6
d9f99af1cb
docs: add demo data redesign spec
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-20 20:44:05 +02:00
m038
c973bf0ab3
fix(a11y): update user submodule pointer to include GPX aria-label fix
2026-06-20 20:40:43 +02:00
m038
49e983e804
test(a11y): add A5 GPX delete button accessible name test
2026-06-20 20:36:48 +02:00
m038
6d771855ee
test(a11y): add A4a-A4b photo strip keyboard tests
2026-06-20 20:32:15 +02:00
m038
54180321be
test(a11y): add A3a-A3d aria-pressed and aria-expanded tests
2026-06-20 20:27:50 +02:00
m038
0db4ea9496
test(a11y): add A2 color contrast token test
2026-06-20 20:23:05 +02:00
m038
1e28081b31
test(a11y): add A1 skip link test
2026-06-20 20:19:30 +02:00
m038 and Claude Sonnet 4.6
f63912d874
docs: add WCAG 2.1 AA accessibility audit implementation plan
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01WPJztrVGbwic2xTG7G9fjM
2026-06-20 20:06:44 +02:00
m038
6135a680fe
docs: mark maplibre-migration and story-mode plans complete
2026-06-20 20:02:39 +02:00
m038
cf03eebb72
docs: mark dark-mode plan complete
2026-06-20 20:01:38 +02:00
m038
d6a7a8c3df
docs: mark stats-redesign plan complete
2026-06-20 20:00:54 +02:00
m038
8f5ad0dae9
docs: mark inline-journal-feed plan complete
2026-06-20 19:58:49 +02:00
m038 and Claude Sonnet 4.6
3f8004da48
docs: add WCAG 2.1 AA accessibility audit design spec
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01WPJztrVGbwic2xTG7G9fjM
2026-06-20 19:57:06 +02:00
m038
9e55925169
docs: mark ui-ux-alignment plan complete
2026-06-20 19:56:11 +02:00
m038
9e1950c960
feat: story map markers and flash highlight for story cards
2026-06-20 19:53:59 +02:00
m038
b5e27e68e6
feat: AI titles for 36 Pixelfed entries
2026-06-20 18:38:32 +02:00
m038
069d6d05a2
fix: skip P2 photo-upload test (parked); restore all system media types in media.yaml
2026-06-20 18:31:53 +02:00
m038
75dd3ff970
perf: skip hero media lookup for journal entries (all 3 feed templates)
2026-06-20 18:27:49 +02:00
m038 and Claude Sonnet 4.6
0729e4ea1d
fix: update tests for demo reorganisation (italy-2026-demo, central-asia ordering, japan real entry)
...
- dailies T2: switch ordering test to central-asia-2023 (pixelfed-1 oldest, pixelfed-22 newest)
- dailies T3-T6: update KNOWN_SLUG/TITLE/CITY/COUNTRY to the real japan entry (2026-06-17)
- stories S1-S7: update all italy-2025 URLs to italy-2026-demo
- stories S5/S6: fix URL regex and use val-dorcia-dawn for hero sanity check
- maps M5/M6: point Italy GPX map tests to italy-2026-demo (has markers + GPX)
- global-setup: run make demo-load before tests so italy-2026-demo always exists
- post P2: add retries:1 + test.setTimeout(60s) for intermittent FilePond upload
- user: story template hero fallback for media.types config override (see user commit)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-20 16:31:37 +02:00
m038
9cb1b3cb3a
chore: update user submodule (sort comment in dailies)
2026-06-20 15:47:44 +02:00
m038
36817676ea
fix: recover missing pixelfed-1 Northern America entry; remove unused timezone import
2026-06-20 15:42:22 +02:00
m038
2a8781d970
test: add H1 home page journal-post test
2026-06-20 15:34:33 +02:00
m038 and Claude Sonnet 4.6
ed005bae14
feat: add pixelfed-import script and make target
...
Copies JSON export + script into Docker container and runs import via
python3; installs python3 if absent. Idempotent (skips existing folders).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-20 15:32:56 +02:00
m038 and Claude Sonnet 4.6
3c4ec0b79b
chore: update demo-load/demo-reset for italy-2026-demo; retire japan demo
...
Rewire demo targets to use docker exec for file ops (user/ is owned by
http), point to the new italy-2026-demo source, and reduce demo-reset
to a single rm -rf of the demo trip directory.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-20 15:18:42 +02:00
m038
0339529f44
test: add map animation wait in M7 for marker stability on heavier trip page
2026-06-20 15:16:35 +02:00
m038
fb3a656db5
docs: add Pixelfed import implementation plan
2026-06-20 15:07:37 +02:00
m038
9402594eb8
test: update M7 selector for journal-post.is-highlighted
2026-06-20 15:04:12 +02:00
m038
da1b9f0e93
docs: add Pixelfed import and demo reorganisation design spec
2026-06-20 14:58:14 +02:00
m038
b3ceb4a8f7
test: update T1/T2 selectors for inline journal-post structure
2026-06-20 14:50:30 +02:00
m038
69820fe1cb
chore: update user submodule (Task 1: journal-post CSS + dot-sync JS)
2026-06-20 14:32:07 +02:00
m038
f4a38c23f6
docs: add inline journal feed implementation plan
2026-06-20 14:23:01 +02:00
m038
c0c4fe2622
docs: add inline journal feed design spec
2026-06-20 14:15:19 +02:00
m038
55bfec30f5
fix: remove redundant background declaration from .trip-card:hover
2026-06-20 12:53:34 +02:00
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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 and Claude Sonnet 4.6
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
m038
edc232ae83
Merge pull request 'Playwright UI test suite (25 tests)' ( #1 ) from experimental-polar-steps into main
...
Reviewed-on: #1
2026-06-18 22:41:34 +02:00
m038 and Claude Sonnet 4.6
a50e7f5386
feat: add comprehensive Playwright UI test suite
...
25 tests across auth (A1-A5), posting (P1-P5), validation (V1-V4),
tracker (T1-T5), and nav (N1-N5). Uses storageState for single login
per run. Replaces post-with-photo.spec.js with post.spec.js.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-18 22:34:11 +02:00