Skip to content

v1.5.0a19

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Aug 13:56
· 33 commits to main since this release
  • Opt-in captive-portal responder (server.captive_port, default off).
    iOS shows "No Internet Connection" for the boat WiFi and re-probes
    captive.apple.com every ~30-60 s -- the source of the periodic WebSocket
    blips. Answering the probes stops the flapping, BUT a phone that believes the
    WiFi is online routes its internet over the WiFi instead of cellular --
    breaking live map tiles and the client fetch relay. So the responder ships
    off (the relaxed WS keepalive absorbs the blips) and can be enabled for
    fully-offline setups (maps prefetched, no reliance on phone internet): set
    server.captive_port: 80. Bonus when enabled: any non-probe request to port
    80 redirects to the UI, so 10.42.0.1 works without typing a port.

  • Fixed the ~45 s WebSocket drop cycle ("data stale" flashes). A debug
    recording showed the server perfectly healthy while the phone's socket got
    error/close/reopen every ~45 s: uvicorn's default WS keepalive (ping 20 s /
    timeout 20 s) disconnects a phone whose WiFi power-naps long enough to delay
    one pong -- routine on an iPhone on the boat AP, aggressive in Low Power Mode.
    The server now pings less often and tolerates slow pongs (25 s / 60 s); real
    link loss is still caught by the app's own ping + data-stale detection.

  • SD image: AP radio tuned for phones on deck. The boot script now disables
    Pi-side WiFi power-save and prefers a 5 GHz AP (channel 36) when the hardware
    supports it (Pi 3B+/4/5), with a guaranteed 2.4 GHz fallback if activation
    fails -- the boat always ends up joinable.