AMBER — 'pops on every screen':
staleTime: Infinity only stops REFETCHING, never the FIRST decrypt. So the
encrypted useSyncedAppData blobs (read-state, preferences) each ran a queryFn on
mount (racing consumers multiplied it) and relay responses landing during
navigation made it look per-page. useSyncedAppData now has interactiveNetwork
(default false): for an interactive signer the blob is LOCAL-ONLY — query not
even enabled, patch() a no-op — no decrypt on mount, no publish on a nav-tab
change. Verified with a mocked x-amber login: network-on => Amber op at startup,
with the fix => 0. (useCrewDismissals/useStash were already gated.)
ROUTING — 'same time for every transport option':
router.project-osrm.org hosts ONE car dataset and ignores the profile in the URL,
so foot/bike/car returned identical numbers. Switched to the FOSSGIS per-profile
servers (routing.openstreetmap.de/routed-{foot,bike,car}); the demo server is now
only a last-resort fallback and its result is flagged approximate ('driving
estimate'). Request steps=true and surface turn-by-turn steps for orientation,
plus a '~X min on a board' skate estimate next to the walking time. Verified:
same trip => walk 13 min / bike 5 / moto+car 2, with 5-9 steps each.
182 lines
7.7 KiB
Text
182 lines
7.7 KiB
Text
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.
|
||
- 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.
|