Releases: gelbh/jetlag
Releases · gelbh/jetlag
Release list
v1.0.5
Fixes
- Session list stays on screen with Retry when a refresh fails
- Empty and fail copy on Sessions, Monitor, and the incident queue is short and actionable
- Opening the app with no signal no longer shows the content blocker error page
- The app reloads to the latest version once you're back online if part of it failed to load offline
- The Premium page shows its sign-in options right away instead of waiting on sign-in to load
- Privacy policy discloses masked Sentry Session Replay and that error reports may include a pseudonymous account id
- Hiding and round timers now stay in sync across phones even when a phone's clock is wrong, and a running timer survives the app being closed or killed.
- Solo Measuring and Matching keep map shade when elimination geometry is too large to store, same as multiplayer. Tentacle still saves the Point answer if elim JSON exceeds budget. Map-first Ask tools show send errors in the answer phase instead of failing silently.
Improvements
- Admin ops desk uses Mantine AppShell and controls with a locked desk viewport
- Live sessions is the default filter; extra filters stay behind More filters
- Map tiles you've viewed inside the play area stay available offline longer
- Chat messages you send without signal now clear from the box right away and go out once you reconnect, without sending twice.
- Home, Join and the legal pages load without Google's bot check (reCAPTCHA) until you enter a join code, create a game or sign in
- The home page tab and link previews now read "Jet Lag Map Companion · Live Hide + Seek Maps"
Technical
- Filter OpenFreeMap tile and Cloudflare KV miss spans from Sentry noise
- Harden Sentry SDK 11 privacy defaults, Overpass span filtering, and the first-party envelope tunnel
- Sync Firebase account id into Sentry and instrument React Router navigations
- Unknown web addresses now answer with a real 404 (the app's not-found screen still shows), and search engines can see the noindex on shared join links
v1.0.4
Fixes
- Coastline near-region shade fails closed when WASM is unavailable (no TypeScript distance-threshold fallback)
- The game reconnects on its own after your phone wakes up or the signal comes back, instead of staying stuck on old data
- End Game, found hider, time traps and card plays apply right away on a weak or lost signal instead of hanging or showing a false "check your connection" alert; they sync when you reconnect
- Hider map blue-dot reuses the truth GPS watch instead of starting a second one
- Losing signal while a screen is loading no longer reloads the app into a blank page; it waits for the connection to come back and then refreshes
- The hider's answer timer now starts when your question reaches them, not when you tapped Ask without signal
- Answering or cancelling on a patchy connection no longer leaves a question stuck half-done
- Coastline and border measures recover when Overpass times out on a large custom play area
- Matching and measuring place lists recover when Overpass times out on a large custom play area
- Tentacle places recover when Overpass times out on a large search radius
- Bottom sheets reopen fully after a grabber drag-to-dismiss
- Hide optional app-update notices during a live session, including Home Continue
- Do not auto-apply optional updates until the session is cleared
Improvements
- When the connection looks fine but your moves aren't going through, the app notices quickly and shows you're offline
- Create sheet uses iOS Settings-style grouped rows on Where, Rules, and Play
- Create page groups Where, Rules, and Play, and tucks rare tools under More tools
- Confirm button now says Create game
- Create flow uses Where, Rules, and Play steps
- Measuring coastline and linear near-region shade follows the distance band instead of a coarse cell grid.
- Questions you ask without signal are saved on your phone and send as soon as signal returns
- Privacy policy notes server-side Premium purchase analytics to PostHog after Stripe payment
- Screen-to-screen moves use smoother page transitions when motion is allowed
Technical
- Lighthouse CI audits the same prerendered HTML prod serves for every route, with ratcheted score floors
- Restore route-named Sentry pageloads with LCP/CLS after the SDK 11 span-streaming default
- Forward Sentry tunnel envelopes byte-exact so Session Replay uploads stop failing with 400
v1.0.3
Fixes
- Map data loads more reliably after Overpass timeouts and shared cache misses
- Freehand map strokes disable pan through the native MapLibre map
Technical
- Restore Overpass R2 L2 via aws-sdk and raise proxy client timeout above Postpass
- Drop leftover React Compiler "use memo" directives under full compile
- Continue stale-session purge after a single delete failure
- Drop expected session-ops agent-limit and IndexedDB createOrUpgrade abort noise from Sentry
v1.0.2
Fixes
- Ask tool sheets slide open like Settings instead of popping in
- Coastline measuring shade uses true distance to the coast (no inflated buffer bands)
- Hider truth tips use the hiding-zone center until end game, with coastline ties counting as Closer
- Landmass answers still paint elimination shade when the region is too large to store
- Play Move works without signal — the timer pauses from when you played the card and syncs when you reconnect
- Thermometer map errors show on the map chrome when the sheet is hidden
- Region data, transit, and elevation requests now time out after 15 seconds each on a bad connection instead of hanging
- A slow connection now shows a connection message instead of blaming GPS
- Opening chat or the session log no longer jumps the screen
- Clear deleted Stripe customer ids from Firestore and reuse live customers by firebaseUid before create
Improvements
- Pins and zones save faster on a weak signal by skipping a redundant membership check
- Map status notices sit under the status rail instead of over the tool dock
- Update waiting auto-dismisses after a few seconds
- Question map shading keeps working offline after you've opened the app online once
- Transit data you have loaded once stays available offline
- The join screen shows up right away on first visit instead of after the app finishes loading.
- Chat messages and questions show "Waiting to send" until the game confirms them, the sync chip says "Last known state" instead of "Synced" when you're looking at cached data, and rejected actions now tell you they didn't sync
Technical
- perf: Elimination shade unions new annotations onto the prior mask when only adding
- Enable React Compiler full compile mode
- Drop redundant overlay-open useCallback wrappers under React Compiler
- Drop redundant waitingOnHost useMemo under React Compiler
- Session actions that need signal (join, leave, end, role codes, rematch) now say "Needs a connection" right away instead of hanging, and retry safe ones automatically on a flaky network.
v1.0.1
Fixes
- Ask tools use your map location when GPS one-shots fail
- Players keep their seat in the game after losing signal instead of rejoining as someone new
- Coastline measuring waits for the distance to finish before Send unlocks
- Home and info pages load faster.
Improvements
- Create screen opens faster; tap the map to start framing your area.
- The home screen shows up right away instead of a brief “Starting…” splash
Technical
- Replace CVA button with Mantine Button and drop unused class-variance-authority / @radix-ui/react-slot.
- Annotate hot map and session parents for React Compiler coverage
v1.0.0
Improvements
- Mantine/iOS is the player UI (program close)
- Survey dual path removed after the Mantine migration
Technical
- Wave 7 dead-code purge (routes, components, fixtures, deps, package.json policy)
v0.17.1
Technical
- Heal deleted Stripe customers before Checkout and billing portal.
- Restore tentacle Send gate until a POI is confirmed.
v0.16.0
Fixes
- Persist location Allow so Safari map reloads skip the banner when Permissions stays masked as prompt
Improvements
- Hider set/move zone uses map-first placement (method chips, then map overlay)
- Hide Undo/Redo on the hider tool dock in multiplayer sessions
- Player UI runs in a fixed phone-width shell; desktop ops layout removed
- Map chrome, drawers, and entry routes stay inside the phone column
- Session support agent shows a working state while Cursor Cloud Agents finishes the reply
- Player bottom sheets support drag-to-dismiss with iOS-style open/close motion
Technical
- Run session-ops turns on Cursor agents with HTTP MCP instead of OpenAI chat-completions
- Gate CI on zero ESLint warnings and clear existing lint debt
- Geometry kernel production path is WASM-only (G0–G5j); client override and TypeScript dual-path removed for shipped ops
v0.15.0
Fixes
- iPhone standalone PWA map paints full-bleed under notch and home indicator
Improvements
- Mantine Wave 5: player chrome CSS prune and error surfaces on Mantine.
- Smoother placement map camera reframes (ease/fly from shared motion tokens)
- Softer elimination shade opacity transitions under reduced-motion rules
- Drop the redundant map tools HUD coach toast; first-run Map tools guide remains
v0.14.0
Fixes
- Measuring: closer/further answers keep map shade after confirm in multiplayer, even when the region is too large to store as a polygon
Improvements
- Land Mantine player UI through Wave 4 (entry chrome, tool hosts, map islands).
- Tentacles: recommended answers use the hiding-zone center unless the seeker is actually inside the zone
- Map chrome: full-bleed hunt tool deck with even tool spacing and shared safe-area overlay padding.