SkateSpots/release-notes.txt
SkateSpots 5a819d5a31 feat(directions): follow mode, choose-your-start, offline route cache
Follow mode (explicit Start; off by default — a watcher drains battery):
watchPosition in geolocation.ts, live dot, 'NEXT · step N' banner with
distance-to-turn + distance-to-go, current step highlighted, map follows.
A transient watch error (timeout/unavailable) no longer kills it — only a
permission denial does; the watcher recovers on its own.

Choose your start: 'From → My location / Choose on map' — tapping the map sets
the origin, and the route recomputes from there.

Offline: src/lib/routeCache.ts keeps the last route per destination+mode with
the line downsampled to <=250 points. If a fetch fails (no signal / routing
server down) the dialog falls back to it with an 'Offline · saved route {age}'
badge instead of a dead error.

Also tidied the map overlays (offline badge bottom-left, Whole route
bottom-right) so nothing covers Leaflet's zoom control.

Verified with CDP: controls present; follow banner tracks movement (step 1 ->
step 7, distances update); blocking routing shows the cached route + badge;
picking a start on the map changed the route (968 m -> 922 m). Still no voice
guidance or re-routing if you leave the route (documented).
2026-09-27 19:11:14 +07:00

191 lines
8.3 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

v1.5.2
🛒 Marketplace, levelled up
- Every listing lives in one hub now: Browse, Selling (your own listings with
one-tap Mark sold), your Trades, and Reputation.
- Rate a trade 1–10 skateboard decks when you confirm it. Ratings show on both
profiles with an honest average — and every confirmation is with a real
person, so two accounts can't pump each other's rep.
🧭 Directions actually work now
- Fixed the route map never drawing (you'd get an empty dialog and "no route").
Routes now show your position, the spot, and the line between them.
- Real per-mode routing: Skate/Walk, Bike, Moto and Car now give genuinely
different routes and times (walking 13 min vs biking 5 vs driving 2 on the same
trip) instead of one number copy-pasted across every mode.
- Added turn-by-turn route steps for orientation — the actual turns and street
names, not just a line on a map. Tap any step to jump to it on the map, and use
"Whole route" to zoom back out.
- Shows an arrival time ("arrive ~08:10 PM") and remembers the mode you picked
last time, so you're not sent back to walking on every trip.
- Tap Start and it follows you: your dot moves, the current step highlights, and
it tells you the next turn and how far is left. (No voice guidance yet.)
- Going somewhere else first? "From → Choose on map" lets you set the start
point instead of routing from where you're standing.
- Lose signal mid-route and it keeps showing your last route — clearly marked
as saved, instead of going blank.
- Skating gets its own honest estimate ("~6 min cruise on a board") next to the
walking time, and moto is clearly labelled as using driving roads.
- Opens instantly from your last known location; "Near Me" sorts by distance.
📱 Nav fixes
- The desktop "More" menu no longer vanishes when you pin Marketplace.
- Marketplace is now in the phone menu (☰) — pin it to the bottom bar too.
🪙 Mints loads in the app again
- The mints list was showing a JSON error on phones; it's fixed.
📰 Newsletter
- Fixed a bug that pegged your CPU on the newsletter page.
- Issues and subscriptions now publish to the community relay so everyone sees
the drops.
✨ Smoother everywhere
- Amber is properly scoped now: it only opens for real signed actions (log in /
sign up, messages, your Stash, marketplace trades, invites, publishing).
Browsing, reading notifications and moving between sections no longer trigger
a signer prompt — the app's encrypted cross-device data stays local-only on
Amber instead of decrypting on every screen.
- Logo no longer crowds the nav.
---
v1.5.1
🦧 Sasquatch — the AI guide, levelled up
- Ask real questions and get answers streamed as they're written.
- Sasquatch Pro unlocks AI answers plus personal actions (drafting posts &
listings, your Stash/Crews in chat). Pay with Lightning — from 7 days.
- Free, always: trick & term lookups, and finding spots, events, crews, shops,
tours and gear straight from the relays.
- Your Pro balance shows right in the guide.
🚇 Directions that stay in the app
- Route to any spot by public transport, bike, moto or car — drawn on our own
map, no bouncing out to Google or Apple Maps. Pick a mode, see the line.
🧑🎨 New in The Lab: Barbers & Hairstylists
- Cuts, fades, beard trims and colour — shop chair or mobile. Find a fresh trim
on the scene.
✨ Smoother everywhere
- The app shell no longer rebuilds on every screen, so the Sasquatch chat and
your scroll position survive navigation.
- Directions opens instantly now (it draws from your last known location first).
- The signer only pops for things that need it — log in, messages, your Stash,
the marketplace and publishing. No more prompts just from moving between tabs.
- Mints is now in the phone nav; tidier tab labels.
---
v1.4.5
🔄 Cross-device sync
- Your read state (notifications, messages, crew chat, newsletter) and app
preferences now sync across devices via encrypted NIP-78 app data.
🔒 Security hardening
- Amber signatures are verified, and trust scores verify event signatures
before they're used.
- Cashu wallet seed is stored in the native Keychain/Keystore with a mandatory
first-time backup.
- The agent (CVM) server only serves signature-verified events.
🗺️ Map & spots
- Crisp map pins with spot-type and shelter glyphs, plus smoother loading.
- New "Shelter" (weather protection) field.
- Better spot dedupe across geohash/city and name variants.
- Faster cold-start: query persistence, optimistic geolocation, skeleton pins.
📅 Tours & events
- Tour countdown badges, session times on scheduled local tours, and calendar
export. Polished Create Tour flow.
🐿️ Sasquatch
- Faster answers via a local fast-path, honest spot counts, deduped results,
and no more empty/typo dead-ends.
🎨 Polish & accessibility
- Lighter onboarding, shared empty states, improved contrast, a skip-to-content
link, and live-region announcements.
- Relay list UI polish with live connection indicators.
- Mobile fix: detail-page grids no longer overflow horizontally on narrow screens.
---
v1.3.3
📡 NEW — Local Relay (Citrine) · Android
Run a private Nostr relay right on your phone with the free Citrine app, then
flip it on in Settings → Relays. When it's connected you get:
- Instant reads — the map, spots, crews and messages load from your device
- Works offline — browse (and queue posts) at a spot with no signal
- On-device backup — a durable local copy of your own events
It's opt-in, Android-only, and your Stash and messages stay end-to-end
encrypted exactly as before — the local relay only speeds things up.
🛹 Reliability & polish across the app
- Events/Tours: month calendar view with a list⇄calendar toggle
- Notifications: RSVP/update alerts now open the event, not the sender
- Map: fixed trusted-first sorting and stash card borders
- Crews: fixed roster edits clobbering each other on rapid changes
- Lab/Market/Stash: always show the newest revision of a profile
- Wallet: clear warning (with the exact sats at risk) before removing a mint
- Spot claims: cleaner ownership history
- Newsletter: recurring issue titles no longer overwrite older issues
- Messages: group chats no longer leak into your 1:1 conversations
---
v1.2.14
🔒 Security hardening (payments & trust signals)
- Auto-pay now verifies every Lightning invoice's amount before paying (zaps,
crew zaps, listing fee). A server can no longer return an inflated invoice to
overcharge your wallet.
- Pro access is granted only by a verifiable, provider-issued zap receipt (plus
platform owners). Self-signed receipts no longer grant Pro.
- "Verified payment" badges on featured listings now require a provider-issued
zap receipt — self-published receipts can't fake verification.
- Crew funding goals tally only real invoice-backed zaps, so totals can't be
inflated with fake zap receipts.
Plus the delete diagnostics from 1.2.13 to pinpoint the signing/publish step.
---
v1.2.10
🛠️ Fixes a startup crash (black screen) introduced in the previous build and
keeps the Amber signing fix: signing now opens Amber the same reliable way
login does, so delete / accept invite / zap complete instead of hanging.
After updating, log OUT and log back IN once.
---
v1.2.8
🛠️ Amber finally pops up — signing works (the real fix)
The big one. On some Android setups (notably GrapheneOS), tapping delete,
accepting a crew invite, sending a zap, or editing your profile would spin
forever and Amber never appeared.
Root cause: the app's browser layer was silently dropping the request that
opens Amber, so the approval screen never launched. We added a native hand-off
so signing requests now open Amber directly — exactly like login already does.
Now every signing/encryption action launches Amber, you approve, and the
action completes. If Amber genuinely doesn't respond you get a clear message
in seconds instead of an endless spinner.
IMPORTANT: after updating, log OUT and log back IN once. Then delete, accept
invite, zap, and profile edits will just work.
🔔 Notification bell "Mark read" actually clears the badge
Marking notifications read now clears the count for crew items too, while
your pending invites and requests stay visible in the Crews tab until you
act on them.
🧹 Housekeeping
Behind-the-scenes reliability fixes across the signing and notification flows.