Commit Graph
100 Commits
Author SHA1 Message Date
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
m038andClaude Sonnet 4.6 fade38e7a0 fix: enforce write phase completion gate and wire done endpoint
- GET /write now checks all groups are written/skipped before showing
  the completion screen; incomplete sessions are redirected to the first
  draft group
- POST /write/done now accepts form data (not JSON) and redirects to
  /export; wired up from the completion screen via a <form> POST button
- phase5.html extra_scripts block wrapped in {% if group %} to prevent
  Jinja errors when group is None on the completion screen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 16:58:03 +02:00
m038 f22d32f056 test: add AX6 (gpx-manager, mocked) and AX7 (story page) axe scans
Both scans reveal real violations documented in task-6-report.md.
Full suite: 64 passed, 15 failed (2 new AX failures + 13 pre-existing).
2026-06-21 16:54:50 +02:00
m038andClaude Sonnet 4.6 02c772f321 feat: Phase 5 write with autosave, journal/story modes, skip
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 16:54:15 +02:00
m038 1b319ca8ae test: add P6-P8 — success message, date pre-fill, form reset
- P6: verify "Entry posted successfully!" toast after submit
- P7: verify server resolves default:now to a recent timestamp in saved frontmatter (Grav renders the literal "now" string in the HTML input; resolution happens server-side)
- P8: verify title/content fields empty after successful submit (form reset:true)

Also fix pre-existing helpers.js issues:
- TRACKER_DIR now resolves via docker inspect or GRAV_USER_DIR env var so tests find entries even when running from a worktree without a user/ directory
- DAILIES_URL exported and derived from post-form.md pageconfig.parent so P1/P2 navigate to the correct active-trip URL
- cleanupEntry/findEntry now guard against missing TRACKER_DIR
- P2 marked test.skip (was running and failing on missing fixture)
2026-06-21 16:45:04 +02:00
m038andClaude Sonnet 4.6 b5c90a1e81 feat: Phase 4 grouping with entry-break dividers
Add group.py route, phase4.html template, and supporting state changes.
Photos are shown as a flat stream; clicking divider zones inserts
entry-break boundaries that split photos into labelled groups. Labels
persist via group_labels dict. Done materialises groups into state.groups
and advances to write phase.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 16:44:54 +02:00
m038 596db0442f fix: remove stale tests/ui/.auth dir; add to .gitignore 2026-06-21 16:37:56 +02:00
m038andClaude Sonnet 4.6 23b68d845b fix: curate swap endpoint name, reorder date field, 404 on missing asset
- Rename /curate/retag to /curate/swap; response now includes new_tag
- /curate/reorder: read body["order"] key (was ordered_ids); include date field
- /curate/remove and /curate/swap: return 404 if asset_id not found
- Update phase3.html JS fetch calls and reorder payload to match spec

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 16:37:25 +02:00
m038andClaude Sonnet 4.6 2c8d676e25 test: add GPX Manager end-to-end spec (GM1-GM7)
Also fix auth.setup.js AUTH_FILE path: the file lives in tests/ui/auth/
so the relative path to tests/.auth/user.json needs ../../ not ../ to
match the storageState path in playwright.config.js.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WPJztrVGbwic2xTG7G9fjM
2026-06-21 16:35:48 +02:00
m038andClaude Sonnet 4.6 851df070e4 feat: Phase 3 curate with remove, retag, drag reorder
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 16:33:58 +02:00
m038andClaude Sonnet 4.6 a6a2b31c43 feat: Phase 2 triage with keyboard shortcuts J/S/X
Implement /triage GET/POST routes in triage.py blueprint; render
phase2.html with day-grouped photo grid, Alpine.js keyboard tagging
(J=journal, S=story, X/Space=skip), and done-button gated on all-tagged.
Remove stub from albums.py; register triage.bp in __init__.py.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 16:26:53 +02:00
m038andClaude Sonnet 4.6 7b7810cc59 feat: add remote-fetch-content to pull user content repo on server
Separate from remote-fetch (main repo) since content sync is handled
by the git-sync plugin once configured; this is for one-off manual pulls.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 16:26:03 +02:00
m038andClaude Sonnet 4.6 32775ef83f fix: remote-fetch switches to main branch before pulling
Server clone was tracking experimental-polar-steps; checkout main
ensures it follows the correct branch going forward.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 16:25:12 +02:00
m038 2ab0b13eb6 test: reorganise tests/ui/ into feature subdirectories 2026-06-21 16:22:17 +02:00
m038 fec536ef16 test: add minimal GPX fixture for GPX Manager tests 2026-06-21 16:18:40 +02:00
m038andClaude Sonnet 4.6 39d19cf2f8 feat: Phase 1 album selection with resume/start-over
Implements GET / listing Immich albums with resume badge, POST /select
creating TripState and redirecting to /triage; graceful error display
when Immich is unreachable.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 16:18:38 +02:00
m038 f00f48c40c fix: add @axe-core/playwright to devDependencies; remove duplicate ITALY_URL constant 2026-06-21 16:18:10 +02:00
m038 508fcbdbe8 test: fix stale trip-slug references; add home, highlights, a11y specs 2026-06-21 16:12:42 +02:00
m038andClaude Sonnet 4.6 c9c1a50103 fix: correct Alpine scope for notes panel, tojson escaping, remove dead code
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 16:11:41 +02:00
m038andClaude Sonnet 4.6 e4e4de319d fix: include api plugin in server install alongside admin2
Both api and admin2 are bundled with the Grav 2.0 zip and not available
via GPM. Extract and install both during remote-install. Remove the
ad-hoc remote-install-admin2 target — the main install now covers it.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 16:11:40 +02:00
m038andClaude Sonnet 4.6 bcfee45bd7 feat: add base shell, notes panel, back-navigation with stale propagation
Implements Task 4: base.html DaisyUI/Alpine shell, notes autosave panel,
nav.py phase switching with downstream stale marking, notes.py save/get
endpoints, state debug endpoint, and stub /triage route for test support.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 16:08:21 +02:00
m038andClaude Sonnet 4.6 203737cc3f feat: add Immich API client and photo proxy routes
Implements ImmichClient with list_albums, get_album, get_thumbnail,
get_original methods; wraps connection errors as ConnectionError.
Adds /proxy/thumb/<asset_id> and /proxy/original/<asset_id> Flask routes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 15:55:26 +02:00
m038andClaude Sonnet 4.6 102ad7b77b feat: add atomic state management (TripState, Photo, Group)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 15:51:26 +02:00
m038andClaude Sonnet 4.6 7ce02d642a feat: scaffold travel-memories Flask app and test infrastructure
Adds services/travel-memories/ with Flask factory (create_app), stub
route blueprints, pytest/playwright smoke test infra (httpserver session
fix, pytest.ini pythonpath), phase2–6 fixture JSONs, Dockerfile, and
docker-compose service entry. Smoke test (test_health) passes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 15:46:32 +02:00
m038andClaude Sonnet 4.6 e2497adf0a docs: add travel-memories implementation plan
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 15:34:34 +02:00
m038andClaude Sonnet 4.6 d507d04825 docs: add Playwright tests improvement implementation plan
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WPJztrVGbwic2xTG7G9fjM
2026-06-21 15:30:39 +02:00
m038andClaude Sonnet 4.6 4fe8d2b72b chore: fix server-install.sh and update .env for Grav 2.0 production deploy
- server-install.sh: use GitHub releases URL (avoids channel suffix hack)
- GRAV_VERSION bumped to 2.0.0-rc.10 in .env.example
- production-todo.md: mark Phase 2.1 env vars as done

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 15:30:34 +02:00
m038andClaude Sonnet 4.6 c703a09967 docs: add Playwright test improvement and expansion design spec
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WPJztrVGbwic2xTG7G9fjM
2026-06-21 15:09:44 +02:00
m038andClaude Sonnet 4.6 29e046f7f7 docs: add travel-memories design spec
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 15:05:09 +02:00
m038 611c4a2949 docs: fill in light-mode values for surface-raised and ink-inverse 2026-06-21 14:44:49 +02:00
m038 0b6f4b3b9e docs: mark entry enrichment spec and plan as done 2026-06-21 14:44:28 +02:00
m038 e108887c4d docs: rewrite design-system-light.md as color-only reference with gap analysis 2026-06-21 14:37:14 +02:00
m038 11167e9a65 docs: update reference docs to match implementation (dark theme, MapLibre, /dailies) 2026-06-21 14:34:45 +02:00
m038andClaude Sonnet 4.6 4be7a52fd8 feat: entry enrichment — add location, weather, rename folders to title slugs
- Generated per-trip enrichment review docs (docs/enrichment/)
- Applied location_city, location_country, lat, lng, weather_temp_c, weather_desc to all real entries
- Renamed entry folders from pixelfed-N to date-title-slug format
- Bukhara date corrected from 2023-09-23 to 2023-10-02
- Slovenia 2024 (Piran) split into separate enrichment doc for future trip page
- italy-2025: 2 entries enriched (Venturina Terme, Pienza)
- central-asia-2023: 22 entries enriched + renamed
- us-canada-mex-2024: 11 entries enriched + renamed (pixelfed-1/Slovenia untouched)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 14:25:01 +02:00
m038 c8ee4d1521 docs: apply user corrections to us-canada-mex-2024 enrichment review 2026-06-21 14:16:55 +02:00
m038 8b5f418ffc docs: apply user corrections to central-asia-2023 enrichment review 2026-06-21 14:15:24 +02:00
m038 72afc73065 docs: mark documentation restructure plan as complete 2026-06-21 14:10:32 +02:00
m038 7c63e98f5a docs: remove old-path duplicate files left on main before restructure 2026-06-21 13:50:54 +02:00
m038 5eb3e971bb docs: split Slovenia 2024 entry into separate enrichment doc 2026-06-21 13:50:52 +02:00
m038 7d96450bc0 docs: merge worktree-docs-restructure into main; move new superpowers/ files to working/ 2026-06-21 13:50:12 +02:00
m038 85c3595cce docs: fix Pienza OSM link to clean map URL format 2026-06-21 13:17:58 +02:00
m038 bf3377e7e0 docs: fix stale pm-analysis link in summary.md 2026-06-21 13:14:16 +02:00
m038 f4542c73e3 docs: add architecture overview reference 2026-06-21 13:08:20 +02:00
m038 d884f80e19 docs: add architecture overview reference 2026-06-21 13:07:55 +02:00
m038andClaude Sonnet 4.6 0eb6254085 docs: extract local setup guide from CLAUDE.md; add skill path overrides
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WPJztrVGbwic2xTG7G9fjM
2026-06-21 13:04:31 +02:00
m038 b1efa699f0 docs: add trip switching guide 2026-06-21 13:01:50 +02:00
m038 a2a1ab7e11 docs: add GPX manager guide 2026-06-21 12:59:35 +02:00
m038 562de15429 docs: add GPX manager guide 2026-06-21 12:57:59 +02:00
m038 6d43c65dc6 docs: rewrite posting guide as user-facing step-by-step 2026-06-21 12:55:31 +02:00
m038 c91eb2f644 docs: generate italy-2025 enrichment review doc 2026-06-21 12:54:33 +02:00
m038andClaude Sonnet 4.6 ddbaf7d44f docs: generate us-canada-mex-2024 enrichment review doc
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 12:52:07 +02:00
m038 c2dfad5160 docs: add README.md navigation index 2026-06-21 12:51:42 +02:00
m038andClaude Sonnet 4.6 968cda9b27 docs: generate central-asia-2023 enrichment review doc
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 12:48:24 +02:00
m038 dbf645ebc4 docs: fix all internal cross-references after restructure 2026-06-21 12:48:23 +02:00
m038 65597de00d docs: fix all internal cross-references after restructure 2026-06-21 12:48:04 +02:00
m038andClaude Sonnet 4.6 93aa6d9b42 docs: add entry enrichment implementation plan
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 12:43:46 +02:00
m038 05d65652bd docs: move remaining untracked files to restructured locations
- milestone specs: docs/milestone-*-spec.md → docs/working/milestones/milestone-*.md
- qa files: docs/qa-*.md → docs/working/qa/*.md
- research files: docs/research-*.md → docs/research/*.md
- design spec: docs/design/design-spec.md → docs/reference/design-system.md
- backlog, pm-analysis, summary: moved to docs/working/
2026-06-21 12:42:32 +02:00
m038 5aad6a3760 docs: move research-story-editing to research/story-editing.md 2026-06-21 12:38:43 +02:00
m038 28008da922 docs: restructure docs/ into guides/ reference/ working/ research/ 2026-06-21 12:37:55 +02:00
m038andClaude Sonnet 4.6 647f76333d docs: add entry enrichment design spec
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 12:36:51 +02:00
m038 58b41f5d36 docs: add documentation restructure implementation plan 2026-06-21 12:26:28 +02:00
m038 046a505615 docs: add superpowers skill path overrides to restructure spec 2026-06-21 12:19:57 +02:00
m038 e7de57623c docs: add documentation restructure design spec 2026-06-21 12:17:48 +02:00
m038andClaude Sonnet 4.6 157a558bbd docs: document per-trip map settings (use_gpx, autoconnect) in README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 12:12:45 +02:00
m038 6d2723e6f2 docs: move template behaviour to README; remove from CLAUDE.md 2026-06-21 11:10:24 +02:00
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
m038andClaude 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
m038andClaude 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
m038andClaude 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
m038andClaude 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
m038andClaude 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
m038andClaude 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
m038andClaude 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
m038andClaude 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
m038andClaude 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
m038andClaude 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