Skip to content

Latest commit

 

History

History
111 lines (92 loc) · 6.12 KB

File metadata and controls

111 lines (92 loc) · 6.12 KB

Postcards — Backlog

The single source of truth for requested work. Chat is lossy; this file is not. Every request becomes a line here, and it only moves to Done once it's been verified (screenshot for UI, test for logic) — not when the code merely exists. See AGENTS.md for the working agreement.

Status: 🔲 open · 🔧 in progress · ✅ done (verified) · 💬 answered (no code) · 🧊 deferred

Last reconciled: 2026-07-18.

Feature 016 — unified Filter panel (spec-driven)

Spec/plan/tasks in specs/016-filter-panel/. "Put every filter in one screen and extend it, instead of adding buttons everywhere." One useFilters store + pure applyFilters predicates read by the map and Places; each user story shipped as its own verified commit to both branches.

  • ✅ US1 — one place to slice the map. A single Filter button opens one focus-trapped panel with status, people, date, folder, sort and the place-kind mode; the map's markers, list and counters read the shared store; all inline map controls removed. Verified (tsc + unit + e2e + screenshots), CI green.
  • ✅ US2 — active-filter chips + Clear all. Removable chips above the list; the Filter button wears a dot and announces the active count. Verified.
  • ✅ US3 — the same filter on Places. Places opens the same panel (no Status, no map Mode) and filters via shared predicates; population gates cities only (D4); favourites still float to the top. Verified.
  • ✅ US4 — room to grow. A "More" section adds Favourites-only, Has photo, Has note and a Continent picker on the record-based screens — extending the one panel, not the header. Verified.

Feature 015 — coherent & efficient redesign (spec-driven)

Spec/plan/tasks in specs/015-coherent-efficient/. Shipping theme by theme, each screenshot-verified + all gates green + deployed to both branches.

  • ✅ US1 — one clean Online/Offline mode: removed the map's detailed-map button; grouped all online controls in Settings ("🌐 Online features"); Offline mode = zero app-initiated requests (new e2e, SC-001). Verified.
  • ✅ US7 — durable long-term memory: request persistent storage on first data; protection indicator + last-backup read in Settings (reuses the existing backup reminder). Fixes the "browser reset lost everything" risk. Verified.
  • 🔲 Next: US2 show-a-friend nav · US3 journal parity · US4 sharing (QR/file/ publish, GitHub demoted) · US5 onboarding · US6 speed/mobile · US8 native.

Done (verified)

  • ✅ Offline base map recoloured — soft-blue sea, warm land, defined coastlines & borders (was near-white land on near-white sea = blank). Screenshot.
  • ✅ Journal composer no longer opens by default — open it from the toolbar or by long-pressing the page. Screenshot: closed by default → long-press opens.
  • ✅ "Load guide overviews automatically when online" — verified already wired (GuideButton auto-loads on open when the toggle is on, online, not Offline mode). No change needed; likely looked inert due to toggle-off / offline / a stale build.
  • ✅ Top-bar "● Online" chip is now a real toggle button — click it to flip Offline mode (label/dot follow the mode, aria-pressed, tooltip). Screenshot, online↔offline. (Earlier I'd wrongly moved the map layer button; the ask was this top-bar chip.)
  • ✅ PWA auto-update prompt — a "new version — reload" banner (SW registered manually in main.tsx, prompt mode) so an open tab never serves a stale cached build. Screenshot.
  • ✅ Journal: accent-insensitive city search over the feed + calendar.
  • ✅ Published route map drew blank/white → embed a compact world coastline + enforce a minimum span (single stop now shows regional context). Screenshots.
  • ✅ Intro: explicit Online/Offline mode chooser + "Offline map for a trip" row.
  • ✅ Intro: white flash on entry fixed (opaque overlay from frame 0).
  • ✅ Intro: entry fade removed.
  • ✅ About: app version shown (0.1.0), injected from package.json at build time.
  • ✅ Map: first-run "detailed world map" consent banner removed.
  • ✅ Map: online/offline toggle moved OUT of the Layers panel → always pressable beside the Layers button (two-way, state-aware tooltip). Screenshot.
  • ✅ Moments: explicit loading / load-error states.
  • ✅ Guides: online photo gated on connectivity; loading lines get aria-live.
  • ✅ Map: "hide visited" keeps flags on the map (narrows the list only).

Answered (no code change)

  • 💬 The 🔗 on a published entry is a permalink: a stable #entry-N link that also copies that post's full URL to the clipboard.
  • 💬 Other downloadable packs (besides the ~17 MB full city list): offline map regions (save OSM tiles for a trip) and community place packs — both in Settings.

Needs a decision from you

  • ❓ GitHub sync via OAuth. A pure serverless PWA can't complete GitHub OAuth in-browser: the Web flow needs a client secret, and the Device flow's token exchange isn't CORS-enabled — both require a backend/proxy, which conflicts with the "no server, fully decentralized" constitution. Today's on-device Personal Access Token is the backend-free option. Options to choose from: (a) keep the PAT but smooth its UX (guided scopes, validation, a "create token" deep link); (b) OAuth Device flow via a small user-hosted/community CORS proxy (opt-in, off by default); (c) relax the constitution to allow one tiny serverless token-exchange function.
  • ❓ Curated data-pack catalog — a few ready-made, provenance-tagged packs (metros, national parks, more monuments) installable in one tap, instead of today's paste-a-URL-only flow. (Offered; awaiting go-ahead.)

Open

  • 🔲 Marker popup i18n — map popup labels are captured in English and go stale on a language switch (use a tRef updated each render).
  • 🔲 Guides panel body i18n — City/Country guide bodies.
  • 🔲 Guide link-list i18n — lib/wikivoyage/guides.ts.
  • 🔲 Search "+ Add" dropdown restructure — wrap results + add-row in one positioned container.

Deferred

  • 🧊 Capacitor native feel: status bar, safe areas, keyboard, haptics.