signalk-wakelogger 0.2.0-beta.1 → 0.2.0-beta.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
@@ -4,6 +4,19 @@ All notable changes follow [Keep a Changelog](https://keepachangelog.com/) and s
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.2.0-beta.2] - 2026-09-02
8
+
9
+ ### Fixed
10
+
11
+ - Changed App Store screenshots to immutable absolute npm CDN URLs so installed server-only plugins do not select local static URLs that Signal K does not mount.
12
+ - Added publication verification for the npm `gitHead`, icon and screenshots, and rejected publication from a dirty working tree or source export without an authoritative Git `HEAD`.
13
+ - Increased the asynchronous lifecycle-test budget for slower Windows runners without changing plugin runtime timeouts.
14
+
15
+ ### Changed
16
+
17
+ - Reframed the App Store summary and opening README around the vessel owner's live-tracking, outage-recovery and trip-review outcomes.
18
+ - Added authentic Wake Logger live-tracking and route-review screens ahead of the technical Signal K status and pairing screens in the App Store gallery.
19
+
7
20
  ## [0.2.0-beta.1] - 2026-09-02
8
21
 
9
22
  ### Changed
package/README.md CHANGED
@@ -1,14 +1,20 @@
1
1
  # Wake Logger for Signal K
2
2
 
3
- [Wake Logger](https://wakelogger.com/) streams a vessel's live navigation, apparent wind and depth data from Signal K to the vessel's Wake Logger workspace. It is designed for intermittent marine internet connections: every sample is written to a durable local outbox before transmission, current position takes priority after reconnect, and historical data remains queued until Wake Logger durably acknowledges it.
3
+ [Wake Logger](https://wakelogger.com/) turns your vessel's Signal K data into a private live view and a trip history you can return to after the voyage. Owners and authorised crew can see where the vessel is, review where it went, and make sense of the journey using the navigation data already available on board.
4
4
 
5
- This repository handles live telemetry only. It does not upload full-resolution NMEA archives, control vessel equipment or implement Wake Logger account and trip-editing business logic.
5
+ The plugin is built for real marine connectivity. It stores each sample in a durable local outbox before transmission, sends the current position first when a connection returns, and keeps historical data queued until Wake Logger confirms it is safely stored.
6
6
 
7
- ## Make more of your time on the water
7
+ ## What it gives you
8
8
 
9
- Wake Logger turns raw GPS and onboard instrument data into a useful vessel history. Follow the latest position while the boat is connected, then review trips with route, speed, course, heading, depth and wind context. Wake Logger also provides private vessel and crew workspaces, trip photos, historical weather and tide context, and optional sailing-performance analysis—including race analytics and AI-assisted coaching where available.
9
+ - **See the vessel's latest position.** Wake Logger presents the accepted Signal K feed in a private, read-only live view for the vessel's authorised crew.
10
+ - **Keep the story when mobile coverage drops.** Telemetry waits safely on the Signal K server and resumes automatically, so an ordinary internet outage does not become a gap in the trip.
11
+ - **Review more than a line on a map.** Trips can include speed over ground, course, heading, depth and apparent wind when the vessel supplies them.
12
+ - **Connect without exposing the vessel.** Pair with a single-use code; no inbound internet connection or manually managed MQTT credentials are required.
13
+ - **Keep access under the owner's control.** Wake Logger vessel roles and sharing settings decide who can see the live view and trip history.
10
14
 
11
- The richer the Signal K data, the richer the review: this plugin supplies a resilient live feed directly from the onboard server, even when marine internet drops in and out. Features depend on the vessel's Wake Logger access, plan and available sensors. [Explore Wake Logger](https://wakelogger.com/) to see the wider trip-replay and vessel-management platform.
15
+ Wake Logger can add trip photos, historical weather and tide context, private vessel and crew workspaces, and optional sailing-performance analysis where available. Features depend on the vessel's Wake Logger access, plan and sensors. [Explore Wake Logger](https://wakelogger.com/) to see the wider platform.
16
+
17
+ This repository handles resilient live telemetry transport only. It does not upload full-resolution NMEA archives, control vessel equipment, replace a navigation display, or implement Wake Logger's account and trip-management logic.
12
18
 
13
19
  ## Requirements
14
20
 
@@ -38,6 +44,10 @@ After the first accepted position arrives, the vessel's **Signal K Live** panel
38
44
 
39
45
  The private live panel is read-only for vessel crew. Device pairing and management require the appropriate vessel role, while public live sharing is off by default and remains under the vessel owner's control. Live telemetry is for situational awareness and trip logging, not as a certified navigation display.
40
46
 
47
+ ## From live data to useful trips
48
+
49
+ Signal K supplies the onboard observations; this plugin delivers them reliably; Wake Logger turns accepted reports into a view people can use. The App Store screenshots show the resulting live vessel and route-review experiences first, followed by the Signal K connection and pairing screens. Wake Logger features beyond live telemetry remain cloud features and may depend on the vessel's plan.
50
+
41
51
  ## Offline operation
42
52
 
43
53
  The default queue retains up to seven days or 250 MB. Records have persistent device-scoped sequence numbers and checksums. MQTT broker acknowledgement is not enough to remove a record: Wake Logger must acknowledge that the database commit completed. If a configured limit is reached, the oldest backlog is discarded, the newest data is preserved, and the dropped count is shown in plugin status.
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ const sampler_1 = require("./telemetry/sampler");
18
18
  const mqtt_client_1 = require("./transport/mqtt-client");
19
19
  const state_machine_1 = require("./trips/state-machine");
20
20
  const constructor = (app) => {
21
- const pluginVersion = '0.2.0-beta.1';
21
+ const pluginVersion = '0.2.0-beta.2';
22
22
  let generation = 0;
23
23
  let stopSubscription;
24
24
  let sampleTimer;
package/docs/release.md CHANGED
@@ -52,4 +52,10 @@ The bootstrap-version tag may be created from its exact merged commit after trus
52
52
  4. Verify the Publish workflow, npm provenance, `beta` dist-tag and GitHub prerelease notes.
53
53
  5. Interactively move `latest` to the exact published beta, then verify the npm tags, Signal K App Store metadata/assets and registry result.
54
54
 
55
+ The publish guard requires a clean Git checkout with a valid `HEAD`. After npm publication, CI reads the immutable version metadata back from the registry and requires `gitHead` to equal the tagged GitHub commit. It also downloads every declared App Store image and verifies an image content type. A publication with missing commit provenance or broken artwork therefore fails before the GitHub release is created.
56
+
57
+ The screenshots use version-pinned absolute unpkg URLs while the same image files remain inside the npm tarball. This avoids a Signal K 2.31.1 installed-plugin behaviour that prefers local screenshot URLs even though server-only plugins have no static-file mount. Update the version in those URLs whenever the package version changes.
58
+
59
+ Order screenshots around the operator's experience: Wake Logger outcomes first, then connection status and configuration. Only include real product screens that the live telemetry integration genuinely enables; do not imply that broader Wake Logger cloud features run inside the Signal K plugin. Review every image for private endpoints, credentials and unintended personal information before release.
60
+
55
61
  Never reuse or move a published tag. A stable workflow must be introduced separately and reviewed against an explicitly agreed stable-release gate.
@@ -16,6 +16,8 @@ On 2026-09-02, `signalk-wakelogger@0.2.0-beta.0` was published publicly to npm a
16
16
 
17
17
  The `0.2.0-beta.1` package metadata was audited against Signal K's published App Store guidance: it retains the required plugin keyword and cloud category, a top-level human author, a user-facing display name, two 1280×800 screenshots below 500 kB, a changelog and a scannable README. Its App Store icon is Wake Logger's official 512×512 blue-wave PNG, copied byte-for-byte from the website application asset. A dry-run tarball contains the icon, both screenshots and every README-linked document.
18
18
 
19
+ The `0.2.0-beta.2` candidate works around Signal K 2.31.1 preferring local installed screenshot URLs for a server-only plugin even though those URLs are not mounted. Its version-pinned absolute unpkg screenshot URLs return the packaged PNG files directly. Publication CI now verifies that npm records the tagged GitHub commit as `gitHead` and that every declared App Store image is retrievable as an image before creating the GitHub release.
20
+
19
21
  Also on 2026-09-02, a deliberately brief production-paired integration check consumed Signal K's synthetic NMEA 2000 replay. The queued sample contained position, SOG, COG, heading, depth and apparent wind; the association was active and the application acknowledgement advanced through the current sequence with zero pending messages. This proves the packaged transport, production broker ingestion and durable acknowledgement path, but it is not real-vessel or target-hardware evidence. The plugin was disabled immediately afterwards so synthetic data would not continue streaming.
20
22
 
21
23
  `npm run measure:protocol` encodes a synthetic 24-hour, 1 Hz stream with every supported optional field. It counts normal online application payloads: one retained state and one single-sample telemetry batch each second, plus a representative status document every ten seconds. MQTT/TCP/TLS overhead and storage/Signal K resource use are intentionally excluded. The checked target is below 1 KiB/s before transport overhead.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "signalk-wakelogger",
3
- "version": "0.2.0-beta.1",
4
- "description": "Send live Signal K vessel data to Wake Logger for tracking, trip replay and sailing performance analysis",
3
+ "version": "0.2.0-beta.2",
4
+ "description": "Turn Signal K navigation data into resilient Wake Logger live tracking and trip history, even through internet outages",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Nigel George",
7
7
  "repository": {
@@ -57,6 +57,7 @@
57
57
  "check:public": "node scripts/check-public-repo.mjs",
58
58
  "measure:protocol": "node scripts/measure-protocol.mjs",
59
59
  "measure:outbox": "npm run build && node scripts/measure-outbox.mjs",
60
+ "verify:published": "node scripts/verify-published.mjs",
60
61
  "prepublishOnly": "node scripts/verify-release.mjs && npm run check",
61
62
  "check": "npm run check:public && npm run lint && npm run typecheck && npm test && npm run build"
62
63
  },
@@ -76,8 +77,10 @@
76
77
  "displayName": "Wake Logger",
77
78
  "appIcon": "./assets/wakelogger.png",
78
79
  "screenshots": [
79
- "./assets/screenshots/plugin-status.png",
80
- "./assets/screenshots/plugin-config.png"
80
+ "https://unpkg.com/signalk-wakelogger@0.2.0-beta.2/assets/screenshots/live-tracking.png",
81
+ "https://unpkg.com/signalk-wakelogger@0.2.0-beta.2/assets/screenshots/route-review.png",
82
+ "https://unpkg.com/signalk-wakelogger@0.2.0-beta.2/assets/screenshots/plugin-status.png",
83
+ "https://unpkg.com/signalk-wakelogger@0.2.0-beta.2/assets/screenshots/plugin-config.png"
81
84
  ]
82
85
  },
83
86
  "signalk-plugin-enabled-by-default": false