pgpilot flight companion
Navigation
Free · Designed for iPad. Not verified for macOS.
Simply the most awesome flight companion for paragliding. Just log in and fly!
Features:
- All the standard stuff: thermal assist, navigation, instrument panels etc.
- External vario + PTT button over bluetooth.
- Voice chat directly in the app (!)
- Create groups with private chats, share tasks, etc.
- Visualize potential landing spots with glide range layer on the map.
- Takeoffs, landings, live wind, thermal hotspots, ++
We are in beta, expect some hard edges and give feedback!
more See the thermals
• Thermals now show on the map - yours and nearby pilots'. Each climb draws from where it was entered to where it topped out, colored by how strong the lift was, and drifting with the wind so you aim for where the core is now, not where it was.
• The side view shows them too: climbs appear as colored columns on the terrain profile, so you can see at a glance how high a thermal ahead of you went. Handy for coming back to a climb you left.
• If you have the thermal hotspots overlay on, it now also shades the terrain in the side view.
• The vario reacts quicker. We now blend the phone's motion sensor with the barometer, so it picks up lift the moment you hit it instead of a second later. Phones without a motion sensor keep working exactly as before.
• Wind estimate while circling got a proper accuracy pass - it used to over-read light wind and under-read strong wind. Speed and direction should now track much closer to reality. Thanks Kjell for the report and the reference data.
• Battery settings are simpler: pick a Normal, Saver, or Extreme preset instead of fiddling with sliders. Display settings that apply everywhere now sit at the top of the Pages panel.
• In Plan mode, pressing push-to-talk no longer yanks the map back to your own position - you stay where you were browsing.
• Tracked down another case of the app re-announcing itself over and over during flight - live positions and voice should hold up even steadier now.
2026.7.3 10h ago
Smoother push-to-talk and steadier live voice
• Your connected radio and the app's group voice can now bridge both ways - what you say in the group can go out over the radio too, so radio-only and app-only pilots hear each other. Still fresh, so let us know how it holds up.
• Push-to-talk is smoother. Keying up no longer causes a quick reconnect, so the very start of what you say comes through cleanly instead of getting clipped.
• Live voice holds up much better on a flaky signal. We tracked down a loop where the app kept re-announcing itself and got throttled - it now stays connected calmly instead of dropping the first moment of a transmission.
2026.7.2 2d ago
Help us sharpen the vario
• There's a new 'Benchmark logging' switch in your vario settings. If you fly with a Bluetooth vario, flip it on and your flights will quietly log both the phone's own sensors and the connected vario side by side. That lets us see how fast each one reacts and make the vario sharper for everyone. It's off by default and completely optional - but if you turn it on, it's a real help.
• Tidied up the close and back buttons across all the slide-up panels - an X in the top-right to close, a back-arrow in the top-left to step back, the same everywhere instead of a mix of styles.
• Map follow stays put when the map is rotated - the little dead-zone that keeps you centered only kicks in when the map is north-up now, like it should.
2026.6.30 3d ago
Vario reconnects on its own, and tidier instruments
• Your vario reconnects on its own now. If the Bluetooth link drops mid-flight, the app keeps trying and picks it back up instead of going quiet until you notice and fiddle with it.
• Instrument widgets can shrink all the way down to a single cell. Handy if you like to pack a lot onto one screen - the numbers auto-scale to fit instead of getting clipped.
• Closing Settings snaps straight back to the map now, instead of hanging for a beat.
• Rain radar no longer disappears when the map redraws itself - it stays on the map.
• Pop-ups like the delete-account and input-learning dialogs now show up centered on screen instead of tucked off in a corner.
• Side View labels stay crisp and upright when you resize the widget - no more squished text.
2026.6.25 Jun 26
Clearer FAI triangle helper on the map
• The FAI triangle helper on the map got a proper polish. The arcs showing where to fly to grow your triangle are clearer (dark outline so they read against any map background), the distance rings now thin out or fill in as you zoom, and it no longer flickers or jumps when you shift around - including when you scrub back through a flight.
• Fewer brief disconnects from chat and live pilots. After a flaky signal the app could pile up reconnect attempts and briefly drop you; it now reconnects once, calmly.
2026.6.18 Jun 19
Crisper maps, a wind arrow on the map, and a smoother Side View
• The maps got a proper refresh and read much better now. Terrain relief is stronger so ridges and valleys pop, the main roads stand out clearly, contour lines and elevation labels are easier to pick out, and the slope-steepness shading moved to a calmer yellow-to-amber ramp instead of the old alarmist red. All the map styles got the same treatment.
• There's a wind arrow now that sits right on your position on the map, so you can read the wind without taking your eyes off where you are.
• You can drop a waypoint straight from the navigation settings, handy for marking a spot to head for.
• Side View got proper ground colors so the terrain under you actually looks like terrain - fields, water, rock - instead of a flat band.
• You can now reclaim the screen edges for your layout right in the widget editor. Tap an edge band to grow your instruments into the notch or rounded-corner area, and tap again to give it back. Bands only show up where your device actually has an edge to reclaim.
• Fixed the map coming up blank right after an app update if you had maps saved for offline use. Until now the only way out was deleting your offline maps - it sorts itself out on its own now, and your downloaded maps stay put.
• Fixed the map sometimes going black and staying that way. It now notices when the graphics drop out and rebuilds itself instead of leaving you with a blank screen.
• Your custom map theme now follows you across your devices instead of living on just the one.
• Tidied up a duplicate heading in Settings.
2026.6.17 Jun 18
Offline maps download cleanly again
• Downloading maps for offline use works again. It was quietly hitting a storage limit and failing partway through, especially over areas with lots of wind stations. Now even large areas save cleanly, and you can grab a few regions back to back without trouble.
• Fixed the map sometimes coming up black instead of loading. It should come up reliably now.
2026.6.15 Jun 16
Not all updates are this visible — mostly under-the-hood this time
• We spent most of this update on things you won't directly see: the app does a lot less work every second while you fly, so it stays smooth and sips less battery — especially with the instruments and Side View open.
• Thermal Assist now has the lift rose built right in. The ring showing where the lift was strongest around your last few circles lives in the widget itself, so you can read which way to widen at a glance.
• Distance rings around your position, with the range written right on each ring.
• Obstacles like power lines and cables show up from further out, so you catch them while planning rather than when you're already on top of them.
• The map's easier to read — labels and your own marker got contrast halos, and airspace borders stay crisp over the thermal heatmap.
• The Side View runs smoother — it keeps up as you turn instead of redrawing the whole picture every moment, and the terrain holds steady while just your glider tracks across it.
• Taking off no longer auto-points your nav arrow back at launch.
• A calm wind estimate now shows as zero instead of a dash, so you know it's actually working.
• A single bad altitude reading can't wreck your flight's max climb and sink anymore.
• Pilots stop vanishing from the map when they bunch up close together in a gaggle.
• Vario and alert sounds now play even when you're not touching the screen.
• Your position keeps reaching the traffic networks while the app's in the background.
• Trying to join a private group while signed out now tells you what to do instead of just failing quietly.
• The low-volume warning moved into the status bar instead of floating over your map.
• The map stays fast even when one of its data servers is having a bad day.
2026.6.13 Jun 13
Not all updates are this visible — mostly under-the-hood this time
• We spent most of this update on things you won't directly see: the app does a lot less work every second while you fly, so it stays smooth and sips less battery — especially with the instruments and Side View open.
• Thermal Assist now has the lift rose built right in. The ring showing where the lift was strongest around your last few circles lives in the widget itself, so you can read which way to widen at a glance.
• Distance rings around your position, with the range written right on each ring.
• Obstacles like power lines and cables show up from further out, so you catch them while planning rather than when you're already on top of them.
• The map's easier to read — labels and your own marker got contrast halos, and airspace borders stay crisp over the thermal heatmap.
• Taking off no longer auto-points your nav arrow back at launch.
• A calm wind estimate now shows as zero instead of a dash, so you know it's actually working.
• A single bad altitude reading can't wreck your flight's max climb and sink anymore.
• Pilots stop vanishing from the map when they bunch up close together in a gaggle.
• Vario and alert sounds now play even when you're not touching the screen.
• Your position keeps reaching the traffic networks while the app's in the background.
• Trying to join a private group while signed out now tells you what to do instead of just failing quietly.
• The low-volume warning moved into the status bar instead of floating over your map.
• The map stays fast even when one of its data servers is having a bad day.
2026.6.12 Jun 13
A big Bluetooth rework, a sharper Side View, and a thermal bubble you can put where you like
• We rebuilt how the app talks to your vario over Bluetooth. Connections come back far more reliably after a dropout, you can run more than one vario at once, and you choose per device whether to use the vario's own climb readings or the app's. If your vario reports temperature and humidity, you'll see those too.
• The Side View got a proper cleanup — it's one widget now, with a switch for whether it follows your heading or the route to your next waypoint. Airspaces, contrast, and waypoint markers are all easier to read at a glance.
• The thermal bubble is now a widget you can place wherever you like — it no longer has to sit in the middle of the map, so you can tuck it out of the way and keep your view clear.
• Tap a pilot on the map for a lot more: navigate straight to them, mark them as a buddy, jump to their group, or grab a share link.
• XContest does more than sync now — your flights upload to XContest straight from the app.
• The terrain hillshade is now lit by the real sun position for the time of day, so the relief looks the way it actually does out there.
• New true-black map style that's easier on the battery on OLED screens.
• The Side View is much smoother now. It was quietly redoing a lot of work several times a second, which could make the whole app feel sluggish with it open — that's sorted.
• When you replay a flight, your own marker shows as an arrow again instead of the walking icon.
• Auto-recenter behaves better — it backs off the moment you pan, and stays put while you've got a menu open.
• Voice you missed while the app was in the background now recovers properly instead of going quiet.
• Tapping the compass does the right thing whether you're in north-up or track-up.
• Vario connections rank devices more sensibly, so the app stops latching onto things that aren't your vario.
• A keyed-up wake tap no longer fires push-to-talk by accident.
2026.6.8 Jun 9
- test(xcontest): run coros on a dedicated-thread loop to fix xdist event-loop clash (#825)
- release: 2026.6.5.1346 — reliable PTT on weak signal + LiveTrack24 live tracking (#824)
- feat(voice): join-first PTT - wait for channel rejoin before transmitting (#822)
- docs(livetrack24): fix stale push docstring (livetrack_enabled, no feature flag) (#823)
- fix(comms): reconcile PTT connection indicator with real channel state (#818)
- fix(voice): broadcast v2 chunks during channel reconnect ('connecting') (#816)
- chore(backlog): TASK-462.1 done (LiveTrack24 push merged, PRs #811 #821)
- feat(livetrack24): enable push for all users via livetrack_enabled toggle (#821)
- fix(flightlog): badge reads the sync root so uploaded flights stop showing "Not uploaded" (#820)
- feat(classifier): drive rule + stats fallback for trackless flights (#817)
- fix(sync): resync from real live_tracks coverage, not the lying count column (#819)
- chore(backlog): TASK-464 XContest live-push follow-ups (PR #813 merged)
- feat(xcontest-push): relay pilot positions to the XContest live map (owner-gated)
- chore(backlog): TASK-463 resync staleness fix (PR #819) addresses chunk-backfill gap
- feat(livetrack24): backend push relay of live flights (TASK-462.1) (#811)
- chore(backlog): TASK-463 app flights lose cloud track when live_tracks never sync
- chore(backlog): TASK-450 quiet-period outcome - still blocked, likely range-level
- fix(airspace): show on ground, distance-only line fallback, compact status pill (#815)
2026.6.5 Jun 6
- release: 2026.6.4.2113 — airspace overhaul, task line, metres-when-close, hike/fly (#814)
- Airspace overhaul: unified analysis, status pills, single instrument, datum correctness (#809)
- feat(flights): hike/fly split — fix activity data loss, distinct hike color, bulk delete (#812)
- chore(backlog): TASK-462.1 in progress (push PR #811)
- fix(task): full optimized line for task distance/altitude, meters-when-close, waypoint sounds (#810)
- docs(backlog): validate XContest Live push protocol end-to-end
- chore(backlog): add LiveTrack24 integration tasks (TASK-462 push/pull)
- docs(backlog): reverse-engineered XCTrack XContest Live push protocol
- ci(android): wire store-listing icon/graphics sync to Play Console (#807)
- chore(backlog): add battery next-frontier task
- docs(backlog): iOS battery experiments report (dedup validation, deadband, journey, next frontier)
2026.6.4 Jun 5
- Release 2026.6.3.2245 — Grenoble pass 1 (release notes) (#806)
- fix(fai-assist): bend FAI assist arcs into iso-perimeter ellipses (FAI-clipped) (#799)
- chore(backlog): mark TASK-459 + TASK-458 Done (shipped in #803)
- perf(map): persistent setData de-dup + fix GPS-inject seam (TASK-459, TASK-458) (#803)
- feat(network): @capacitor/network as native connectivity trigger + cadence input (TASK-460) (#805)
- feat(instruments): thicker black outline on instrument values for legibility (#804)
- chore(backlog): renumber map-gate de-dup task 457->459 (457 taken by merged voice task)
- chore(backlog): add TASK-457 (map-gate persistent de-dup) + TASK-458 (fix GPS-inject seam) from iOS battery investigation
- fix(voice): re-fetch chat history on Realtime reconnect to recover missed PTT (TASK-457) (#801)
- chore(backlog): renumber duplicate TASK-454 (resume→455, roger-beep→456; iOS-bg keeps 454)
- feat(voice): background PTT playback on iOS via silent-audio keep-alive (Sleep-gated) (TASK-454) (#793)
- fix(voice): always deliver unheard PTT messages via listen-outcome model (TASK-454) (#795)
- fix(voice): play PTT opener roger-beep before mic opens so it isn't transmitted (#797)
- fix(comms): give PTT button the frosted shadow halo other buttons have (#800)
- chore(backlog): TASK-453 done (brightness arbiter + iOS plugin fix, PR #794)
- Centralized brightness arbiter + ON/OFF-Auto model (TASK-453) (#794)
- fix(flight): cross-check Doppler speed vs ground movement to stop false indoor takeoffs (#798)
- fix(map): correct flight-track z-order + consolidate map layer ordering (#796)
- chore(backlog): TASK-453 in progress (PR #794)
- chore(backlog): add brightness arbiter + ON/OFF-Auto task
2026.6.3 Jun 4
- chore(release): 2026.5.25.2200 — font size, nicknames, obstacles fix (#760)
- feat(display): font size scale setting (0.8x-1.6x) (#759)
- feat(profile): pilot nickname for compact map labels (#756)
- fix(sw): obstacles 8s timeout aborted cold cache, killed the layer (#758)
- feat(presence): align position-reporting timers to wall-clock multiples (#757)
- fix(ios-ptt): self-heal stuck recorder state on next press (#754)
- fix(comms): bump group-channel recreate delay 500ms → 5s (#755)
- chore(map): tune non-buddy pilot icon sizes (#753)
- fix(comms): force-recreate group channel on CHANNEL_ERROR/TIMED_OUT too (#752)
2026.5.25 May 26
- chore(release): 2026.5.24.2100 — sticky BLE reconnect, terrain styles
- fix(ios-ble): keep retrying auto-connect like Android (TASK-438) (#747)
- chore(map): shrink non-group pilot icons (buddies 60%, others 20%) (#746)
- feat(map): add Google Terrain and Hybrid raster styles (#745)
- fix(ios-auth): keep pilots signed in across app backgrounding (#744)
- feat(altitude): auto-QNH calibrates baro to GPS pre-takeoff (#742)
- chore(backlog): add task-high.98 — move data_pipeline scheduler to dedicated thread (#743)
- chore(backlog): record task-441 (bubble thermal-assist freeze fix, PR #740) (#741)
- fix(thermal-assist): re-sample bubbles on every fix, not just at activation (#740)
- chore(backlog): add task-high.98 — move data_pipeline scheduler to dedicated thread (#738)
- docs(healthcheck): add HEALTHCHECK.md + incident log (draft) (#737)
- perf(realtime): double broadcast flush intervals to halve Supabase load (#736)
2026.5.24 May 25
- chore(release-notes): expand 2026.5.23.2002 with PTT, comms, backend fixes
- chore(release): 2026.5.23.2002 - fix Vegard 7h ghost flight + dedup cloud chunks
- fix(flight-cloud): make track chunk upload idempotent (TASK-439) (#735)
- fix(flight): auto-stop stale sessions on extended GPS silence (#734)
- fix(backend): bound httpx pools + retain orphan asyncio tasks (#732)
- fix(comms): throttle comms_channel_state_change emission at source (#733)
- chore(ops): add Fly -> Axiom log-shipper runbook + setup script (#731)
- fix(nav): stop navigation_started event storm tripping Supabase readonly (#728)
- feat(events): per-event-name rate limit to cap analytics storms (#729)
- fix(realtime): mirror channel.state on worker proxy (TASK-438) (#727)
- chore(ops): add Supabase emergency recovery script (#730)
- chore(voice): revert v2 default to off pending receiver regression (#725)
2026.5.23 May 24
- chore(release): 2026.5.21.2138 — orientation + edit-mode + safe-area + landing fixes (#723)
- fix(display): reapply safe-area override after native re-injection (#721)
- fix(landing): reset detector on wake gap to prevent Android brief-background false trigger (#722)
- fix(instruments): center edit toolbar + displace widgets on resize (#720)
2026.5.22 May 22
- chore(release): 2026.5.21.1037 - orientation revert (#719)
- feat(panel): restore device-driven orientation with global override (#717)
- perf(data_pipeline): probe metadata first in supervised tick, skip 10MB+ data fetch when unchanged (#718)
- fix(db): wrap index_advisor_run in plpgsql with DEALLOCATE ALL (#716)
- fix(db): drop schema prefix on index_advisor call (fixes #712/#714 retry) (#715)
- fix(db): enable hypopg before index_advisor in PR #712 migration (#714)
- chore(db): enable index_advisor extension + expose service-role RPC (#712)
- chore(backlog): file flights-uuid followups (TASK-436, TASK-437) (#711)
- fix(feed): skip non-UUID flight ids in kudos/comments/cloud queries (#709)
- fix(ci): make Android versionCode monotonic across workflows (#710)
- fix(forecast): pass takeoff: ids through normalization (#704)
- chore(release): add 2026.5.20.1721 notes for TestFlight push (#708)
- chore(db): add pilot_buddies(user_id) + groups(created_at,archived=false) indexes (#707)
- feat(map): lower MapLibre pixelRatio 1.5 -> 1.25 (TASK-437 H2) (#682)
- MapGate: three-lane MapLibre update scheduler (TASK-438) (#693)
- chore(db): tighten external_tracks retention to 500-row batches every minute (#705)
- feat: 3-stage battery saver with cascading auto-dim (TASK-434) (#697)
- test(qa,theme): use open_comms_sheet / open_settings_sheet helpers (#703)
- ci(tests): rerun playwright timeout flakes once (#702)
- test(rain_radar): use canonical open_settings_sheet helper (#701)
2026.5.21 May 21
- chore(release): add 2026.5.20.1721 notes for TestFlight push (#708)
- chore(db): add pilot_buddies(user_id) + groups(created_at,archived=false) indexes (#707)
- feat(map): lower MapLibre pixelRatio 1.5 -> 1.25 (TASK-437 H2) (#682)
- MapGate: three-lane MapLibre update scheduler (TASK-438) (#693)
- chore(db): tighten external_tracks retention to 500-row batches every minute (#705)
- feat: 3-stage battery saver with cascading auto-dim (TASK-434) (#697)
- test(qa,theme): use open_comms_sheet / open_settings_sheet helpers (#703)
- ci(tests): rerun playwright timeout flakes once (#702)
- test(rain_radar): use canonical open_settings_sheet helper (#701)
- test(settings,theme): gate Settings sheet on translate-y-0, not heading (#700)
- test(voice-delete): convert unit tests to async to coexist with Playwright loop (#699)
- test(replay): mark full_visual_sequence as visual to unhang CI (#698)
- ci(tests): bump E2E timeout to 75 min and cache deps (#696)
- feat(airspace): user-uploaded custom airspaces (OpenAir + GeoJSON) (#694)
- style(light-map): clearer roads in PGpilot (Light) (#695)
- feat(panel): per-page Orientation toggle + filter presets by orientation (#687)
- chore(layouts): double landscape action-button height (#684)
- fix(fan_in): L1 escalate on prolonged event staleness even when reconnects succeed (#681)
- ci(tests): hardcode cancel-in-progress: false (fixes PR #674 regression) (#680)
- revert(map): restore openfreemap_flying as DEFAULT_MAP_STYLE (#679)
2026.5.20 May 20
- chore(release): 2026.5.18.1913 — fix offline pack airspace/obstacles eviction regression
- fix(sw): preserve primed offline-pack airspace/obstacles on activate (#644)
2026.5.18 May 19
- chore(release): 2026.5.16.2059 - landing prompt fix, offline data persistence, backend stability (#627)
- fix(view-data): encode response off-loop so jsonable_encoder stops blocking /api/health (#626)
- fix(realtime): per-channel startup jitter so tile bursts don't synchronize (#625)
- make live wind arrows 20% larger per pilot feedback (#624)
- chore(landing): extend non-hike landing prompt countdown 10s -> 20s (#623)
- fix(landing): trust baro vario for stale-GPS gate instead of 60-fix fallback (#620)
- fix(offline): persist data cache across releases + cover obstacles/NOTAMs/wind (#621)
- fix(data_pipeline): 30 min poll + per-loop startup jitter (kill TLS bursts) (#622)
- Revert "fix(data_pipeline): cap concurrent ticks with semaphore to avoid TLS-handshake bursts (#617)" (#619)
- ci(ios): preflight on Ubuntu + submit on Ubuntu + Pod/SPM cache (#618)
- fix(data_pipeline): cap concurrent ticks with semaphore to avoid TLS-handshake bursts (#617)
- fix(realtime/bus): always yield in upsert/append (one fix, all producers) (#616)
- fix(ogn/client): yield to event loop between APRS beacons (#614)
- fix(auto_upload): yield to event loop between users in poll cycle (#613)
- fix(watchdog): write thread stacks to disk + flush before os._exit (#611)
- Revert "fix(backend): parallelise InReach polls + dump loop stack on watchdog lag (#610)" (#612)
- fix(backend): parallelise InReach polls + dump loop stack on watchdog lag (#610)
2026.5.16 May 17
- chore(release): 2026.5.14.2041 - rename Beta badges to New (Apple 2.2 reject) (#602)
- chore(ci): add cancel-app-store-submissions to asc-query workflow (#601)
2026.5.14 May 14
- chore(release): bump versionCode 378 + release notes for v2026.5.9.0725 (#537)
- feat(thermal-assist): bubble overlay mode (TASK-391) (#534)
- feat(realtime): flip DEFAULT_REALTIME_WORKER_ENABLED to true (TASK-HIGH.84) (#536)
- chore(test-harness): add Maestro flow that PTTs into a group end-to-end (#535)
- chore(backlog): TASK-HIGH.88 done — script shipped, BO already fixed by #529
- feat(android): single-swipe immersive + system-bars settings toggle
- feat(scripts): one-shot FL backfill matcher for un-linked flights
- chore(backlog): TASK-HIGH.88 — FL backfill (retro-link existing un-linked trips, follow-up to #529)
- chore(backlog): TASK-227 full plan — non-sticky immersive + Settings toggle, with outreach emails
- fix(map): recover MapLibre render loop on reentrancy error (TASK-HIGH.87)
- fix(sync): keep XC->FL writing reconciler disabled in auto_upload (TASK-326)
- chore(backlog): TASK-HIGH.87 — recover MapLibre render loop on suppressed reentrancy error (replay white-page bug)
- feat(ble): enrich diagnostic logs so failed connects are self-explaining
- chore(backlog): mark TASK-HIGH.86 done (PR #525)
- feat(ble): forget-device banner + exponential backoff for stuck connects
- fix(ble): probe data stream + reconnect on type change (TASK-HIGH.86)
- chore(backlog): TASK-MEDIUM.48/49 — BLE diagnostic enrichment + UX backoff (Kjell investigation follow-ups)
- fix(airspace): show GlidingSector (type 21) by default
- chore(backlog): TASK-HIGH.86 add Simon's XCTracer data point + reclassify-doesnt-reconnect insight
2026.5.9 May 9
- chore(release): bump versionCode 377 + release notes for v2026.5.8.1836 (#522)
- feat(realtime): per-user feature flag for worker transport (TASK-HIGH.84 phase 3) (#521)
- chore(backlog): triage May bug reports — TASK-HIGH.86 PTT misrouting + TASK-227 broaden to immersive mode
- fix(map): pin pilot/wind markers to top of stack, shrink buddy icon (#517)
- chore(backlog): sync follow-up tasks from today's work (#520)
- chore(test-harness): add Maestro flow that verifies realtime worker boot (#519)
- fix(realtime): bundle realtime worker as JS module on production builds (TASK-HIGH.84 phase 2 follow-up) (#518)
- feat(connectivity): hardening — relax probe + preflight JWT + fast reconnect recovery (#516)
- fix: airspace fetch retry + earlier launch detection (#514)
- fix(map): obstacles layer opacity actually applies + add thickness control (#515)
- chore(backlog): TASK-391 — bubble thermal assist overlay (3rd mode)
- perf(ogn): restrict fact table to PG/HG, larger flush batches (#513)
- chore(backlog): TASK-389/390 — false-offline detection + JWT auto-refresh
- chore(ogn): log process RSS and async task count in memory line (#512)
2026.5.8 May 9
- chore(release): bump versionCode 376 + release notes for v2026.5.6.2342 (#511)
- feat(realtime): web-worker transport behind flag (TASK-HIGH.84 phase 2) (#510)
- refactor(realtime): introduce RealtimeFacade seam (TASK-HIGH.84 phase 1) (#508)
- chore(backlog,skills): sync uncommitted task files and triage playbook update (#509)
- chore(fly): app vm to shared-cpu-2x / 3072mb (#507)
2026.5.7 May 7
See the thermals
• Thermals now show on the map - yours and nearby pilots'. Each climb draws from where it was entered to where it topped out, colored by how strong the lift was, and drifting with the wind so you aim for where the core is now, not where it was.
• The side view shows them too: climbs appear as colored columns on the terrain profile, so you can see at a glance how high a thermal ahead of you went. Handy for coming back to a climb you left.
• If you have the thermal hotspots overlay on, it now also shades the terrain in the side view.
• The vario reacts quicker. We now blend the phone's motion sensor with the barometer, so it picks up lift the moment you hit it instead of a second later. Phones without a motion sensor keep working exactly as before.
• Wind estimate while circling got a proper accuracy pass - it used to over-read light wind and under-read strong wind. Speed and direction should now track much closer to reality. Thanks Kjell for the report and the reference data.
• Battery settings are simpler: pick a Normal, Saver, or Extreme preset instead of fiddling with sliders. Display settings that apply everywhere now sit at the top of the Pages panel.
• In Plan mode, pressing push-to-talk no longer yanks the map back to your own position - you stay where you were browsing.
• Tracked down another case of the app re-announcing itself over and over during flight - live positions and voice should hold up even steadier now.
more Version 2026.7.3 10h ago
Data Linked to You The following data may be collected and linked to your identity:
Location Contact Info User Content Identifiers Usage Data Diagnostics