signalk-pypilot-newui 3.1.1 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.1.2 — 2026-10-10 — Compatibility with pypilot 0.71 (issue #3)
4
+
5
+ Patch: swap socket.io transport order from
6
+ `["websocket", "polling"]` to `["polling", "websocket"]` so the
7
+ plugin keeps working with the stricter Flask-SocketIO +
8
+ Python-Engine.IO combo shipped with pypilot 0.71. Thanks to
9
+ [@altarceyhun](https://github.com/altarceyhun) for the detailed
10
+ reproduction + verified workaround in
11
+ [#3](https://github.com/Aitonos/signalk-pypilot-newui/issues/3).
12
+
13
+ ### Fixed
14
+
15
+ - **pypilot 0.71 — bare WebSocket handshake fails** (Rev450,
16
+ issue #3). pypilot <= 0.56 accepts a direct WebSocket upgrade;
17
+ pypilot 0.71 rejects it and only lets the client in via the
18
+ canonical polling handshake with a later WS upgrade. Swapping the
19
+ transport order to polling-first keeps both pypilot versions
20
+ working without any behavioural change for the user (socket.io
21
+ still upgrades to WebSocket after the handshake when the server
22
+ allows it).
23
+
3
24
  ## 3.1.1 — 2026-10-10 — Refreshed screenshots
4
25
 
5
26
  Patch: swaps in four up-to-date screenshots (captured on sea trial
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ const trip_recorder_1 = require("./trip-recorder");
28
28
  const maneuver_trace_1 = require("./maneuver-trace");
29
29
  // Rev counter bumped on every build so the user can distinguish deploys
30
30
  // from the webapp header (feedback_revision_bump_each_build).
31
- const PLUGIN_REVISION = "Rev449";
31
+ const PLUGIN_REVISION = "Rev450";
32
32
  // Rev59: read package.json once at load time so /status can report the
33
33
  // npm package version alongside the internal Rev counter.
34
34
  // eslint-disable-next-line @typescript-eslint/no-require-imports
@@ -96,7 +96,14 @@ class PypilotClient extends events_1.EventEmitter {
96
96
  const url = `http://${this.opts.host}:${this.opts.port}`;
97
97
  this.opts.log("info", `[pypilot] connecting socket.io to ${url}`);
98
98
  this.socket = (0, socket_io_client_1.io)(url, {
99
- transports: ["websocket", "polling"],
99
+ // Rev450 (issue #3, @altarceyhun): pypilot 0.71 ships a stricter
100
+ // Flask-SocketIO + Python-Engine.IO combo where the direct WS
101
+ // handshake fails (polling + upgrade handshake works, bare WS
102
+ // does not). pypilot <= 0.56 accepts both orders. Starting with
103
+ // polling and letting socket.io upgrade to websocket after the
104
+ // handshake is the vendor-recommended default and keeps 0.71 +
105
+ // 0.56 both working.
106
+ transports: ["polling", "websocket"],
100
107
  // Rev66 / 2.0.4: infinite reconnect attempts. The old 30-attempt
101
108
  // ceiling meant a long-ish outage (say a Pi reboot that takes 45 s +
102
109
  // a couple of socket.io backoff cycles) could exhaust the counter
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "signalk-pypilot-newui",
3
- "version": "3.1.1",
3
+ "version": "3.1.2",
4
4
  "description": "Signal K friendly UI for the pypilot autopilot, with first-class Signal K paths and Simple Switches so any downstream Signal K client can drive or monitor the pilot. Touch-first mobile visor + full pypilot data (servo, gains, calibration, tack, warnings). Coexists with pypilot-autopilot-provider.",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {