signalk-wakelogger 0.2.0-beta.3 → 0.2.0-beta.4

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +43 -48
  2. package/README.md +56 -43
  3. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,79 +1,74 @@
1
- # Changelog
1
+ # What's new in Wake Logger for Signal K
2
2
 
3
- All notable changes follow [Keep a Changelog](https://keepachangelog.com/) and semantic versioning.
3
+ Updates for boat owners and crew: what's new, what's improved, and anything you need to do.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.2.0-beta.4] - 2026-09-14
8
+
9
+ ### Clearer help in Signal K
10
+
11
+ - Rewritten the App Store guide around pairing, recording trips, uploading later, using courses and preparing offline maps.
12
+ - Replaced technical release summaries with customer-facing notes. Developer setup remains in the separate development documentation.
13
+
7
14
  ## [0.2.0-beta.3] - 2026-09-14
8
15
 
9
- ### Added
16
+ ### Record your trip now, upload later
10
17
 
11
- - Local-only recording mode, durable recording manifests and deferred historical uploads with committed receipt acknowledgements.
12
- - Validated, retained cloud course synchronization with revision acknowledgements and restart-safe local persistence.
13
- - Deterministic native Signal K routes, active-course ownership protection and manual waypoint progression.
14
- - Packaged onboard interactive map using native navigation calculations and discovered Signal K chart resources, including bounded local chart coverage verification.
18
+ Keep recording when internet access is unavailable, or choose **Record locally** to defer uploading. Switch back to **Automatic upload** when you are ready. Stored readings and recording details are retained through plugin restarts.
15
19
 
16
- ### Fixed
20
+ With the supporting Wake Logger service update, you can see historical upload progress and processing status. Trips are finalised once their complete recording has arrived; missing data is clearly flagged.
17
21
 
18
- - Preserve offline samples and trip boundaries through outages and abrupt restarts while prioritizing current position updates.
22
+ Local storage is limited: by default, queued readings are kept for up to seven days or 250 MB. Keep Signal K and the plugin running to record your trip.
19
23
 
20
- ### Compatibility
24
+ ### Take your race course onboard
21
25
 
22
- - Per-recording upload progress and course synchronization require the companion WakeLogger backend update. Deploy that backend before enabling these features.
23
- - Offline basemaps require separately provisioned licensed Signal K charts. Automatic online tile prefetch remains a documented design.
26
+ Select a course in Wake Logger and synchronise it to your vessel before departure. Once downloaded, it remains available without internet access.
24
27
 
28
+ Your course is available to other Signal K applications. You can advance or correct the current mark manually, and Wake Logger respects route selections made by other apps. Automatic detection of start crossings, mark roundings and finishes is not included in this release.
25
29
 
26
- ## [0.2.0-beta.2] - 2026-09-02
30
+ ### Follow your course on an onboard map
27
31
 
28
- ### Fixed
32
+ The new mobile-friendly webapp displays your vessel, course, marks and current leg. It shows distance, bearing, cross-track error, VMG and arrival estimates when Signal K provides them.
29
33
 
30
- - 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.
31
- - 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`.
32
- - Increased the asynchronous lifecycle-test budget for slower Windows runners without changing plugin runtime timeouts.
34
+ ### Prepare for sailing offline
33
35
 
34
- ### Changed
36
+ Use locally installed Signal K charts and check coverage around your course before departure. Your vessel and course remain visible even without a basemap.
35
37
 
36
- - Reframed the App Store summary and opening README around the vessel owner's live-tracking, outage-recovery and trip-review outcomes.
37
- - 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.
38
+ **Before you update:** Upload progress and course synchronisation require the supporting Wake Logger service update. Offline basemaps require suitable charts installed through Signal K Charts; verification checks existing coverage and does not download missing maps.
38
39
 
39
- ## [0.2.0-beta.1] - 2026-09-02
40
+ This remains a beta release.
40
41
 
41
- ### Changed
42
+ ## [0.2.0-beta.2] - 2026-09-02
42
43
 
43
- - Replaced the placeholder Signal K App Store artwork with Wake Logger's official 512 px blue-wave app icon.
44
- - Reworked the App Store summary and README to introduce Wake Logger's live tracking, trip replay, vessel/crew workspace, environmental context and optional performance-analysis features.
45
- - Clarified how accepted Signal K telemetry appears in Wake Logger's private and optionally shared live vessel views.
46
- - Updated App Store publication guidance for the npm `latest` alias required by Signal K discovery during the beta period.
44
+ ### Easier to preview before installing
47
45
 
48
- ### Validated
46
+ - Fixed App Store screenshots that could fail to display after installation.
47
+ - Added screenshots of live vessel tracking and trip review, alongside connection status and pairing settings.
48
+ - Clarified how Wake Logger helps you track your vessel and revisit your trips.
49
49
 
50
- - Confirmed an active production association transmitted all supported fields and received application-level durable acknowledgements with no pending queue; the synthetic Signal K source was disabled immediately after the check.
50
+ ## [0.2.0-beta.1] - 2026-09-02
51
51
 
52
- ## [0.2.0-beta.0] - 2026-09-02
52
+ ### A clearer App Store introduction
53
53
 
54
- ### Changed
54
+ - Added Wake Logger's blue-wave app icon and improved the product introduction.
55
+ - Explained live tracking, trip replay, crew access and optional trip analysis more clearly.
56
+ - Clarified which navigation readings appear in private and owner-shared live views.
55
57
 
56
- - Separated npm beta publication from Raspberry Pi, real-vessel and target-hardware validation; those remain first-vessel and stable-production gates collected through the beta.
58
+ ## [0.2.0-beta.0] - 2026-09-02
57
59
 
58
- ### Added
60
+ ### First public beta
59
61
 
60
- - Retained, credential-free plugin/outbox diagnostics for the Wake Logger administration dashboard.
61
- - Database API-preferred `OutboxStore` with a portable file fallback and sequence-safe backend selection.
62
- - Remotely managed, path-specific telemetry profiles and retained application acknowledgements.
63
- - Adaptive `NORMAL`, `CONSTRAINED` and `OFFLINE` sampling and rate-limited live/backlog scheduling.
64
- - Public-repository leakage checks, AppStore screenshots and beta-only trusted publishing preparation.
65
- - Disposable real-Mosquitto CI coverage and credential-bound outbox protection against partial-state sequence resets.
66
- - Idempotent beta-only npm release checks with exact tag/main ancestry, protected environment and trusted-publisher bootstrap documentation.
67
- - Disposable packaged-plugin Docker testing with real Signal K NMEA 2000 playback, generated HTTPS/MQTT TLS, durable ACKs, broker outage and abrupt-restart recovery.
68
- - Bounded retry for temporary pairing failures, explicit revoked-device status and a protected local credential-forget action that preserves retired outboxes and sequence state.
62
+ - Made Wake Logger available through the Signal K App Store for beta use.
63
+ - Improved connection and queued-upload status so support can help diagnose interrupted uploads.
64
+ - Added centrally managed recording profiles to adapt uploads to changing connectivity.
65
+ - Improved recovery of stored readings after outages and restarts.
66
+ - Added clearer feedback for expired pairing codes and revoked device connections.
69
67
 
70
68
  ## [0.1.0] - 2026-08-31
71
69
 
72
- ### Added
70
+ ### Initial version
73
71
 
74
- - Signal K lifecycle, configuration and supported navigation subscriptions.
75
- - SI normalization, validation and one-second sampling.
76
- - Checksummed segmented outbox with durable sequences and recovery.
77
- - MQTT 5 TLS/QoS 1 transport, current-state priority and application acknowledgements.
78
- - HTTPS pairing, protected credential persistence, trip evidence and status metrics.
79
- - Unit tests, CI, protocol and operational documentation.
72
+ - Connected Signal K position and supported navigation readings to Wake Logger.
73
+ - Added pairing, live updates and onboard storage for readings waiting to upload.
74
+ - Added automatic retries and connection status information.
package/README.md CHANGED
@@ -1,77 +1,90 @@
1
1
  # Wake Logger for Signal K
2
2
 
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.
3
+ **Keep a record of your time on the water—even when you leave internet coverage.**
4
4
 
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.
5
+ [Wake Logger](https://wakelogger.com/) connects your boat's Signal K data to live vessel tracking and trip history. Record your outings, review your route afterward, and share the experience with authorised crew. Bring a selected race course onboard and follow it on a map using the navigation data already available on your boat.
6
6
 
7
- ## What it gives you
7
+ ## What you can do
8
8
 
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.
9
+ - **Track your boat live.** See its latest position, speed, heading, depth and apparent wind in Wake Logger when those sensors and an internet connection are available.
10
+ - **Record without uploading.** Keep recording during an internet outage, or choose when uploads are allowed. Upload stored history when you reconnect.
11
+ - **Review your trips.** Return to your route and recorded navigation data after the outing. With the supporting Wake Logger update, see upload progress and when a trip is being processed.
12
+ - **Take your race course with you.** Download the selected course before departure and retain it onboard through internet outages and restarts.
13
+ - **Use an onboard map.** View your boat, course, marks and current leg on a phone or tablet connected to the boat's Signal K server.
14
14
 
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.
15
+ This is a **beta release**. Upload progress and course synchronisation need the supporting Wake Logger service update. If those controls are not yet available in your account, contact Wake Logger support.
16
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.
17
+ ## What you need
18
18
 
19
- ## Requirements
19
+ - A running Signal K server receiving your boat's position. Other navigation sensors are optional.
20
+ - A Wake Logger account with permission to pair a device to your vessel.
21
+ - Internet access for initial pairing, course downloads and uploads. Once paired, recording can continue without internet access.
22
+ - For onboard course and map features, Signal K's route and course services. These features have been tested with Signal K Server 2.31.1.
23
+ - For an offline basemap, suitable local charts installed through Signal K Charts. Charts are not included with Wake Logger.
20
24
 
21
- - Signal K Server with Node.js 20 or newer
22
- - An eligible Wake Logger vessel and a single-use pairing code
23
- - Outbound HTTPS for pairing and outbound MQTT over TLS on port 8883
25
+ The plugin requires Node.js 20 or newer on the Signal K server. Your boat does not need to accept incoming connections from the internet.
24
26
 
25
- No inbound vessel connection is required. The plugin starts successfully when unpaired, offline, or when Wake Logger is unavailable.
27
+ ## Get started
26
28
 
27
- ## Install and pair
29
+ 1. In Signal K's **App Store**, install **Wake Logger** (`signalk-wakelogger`).
30
+ 2. In Wake Logger, open your vessel's settings and generate a Signal K pairing code.
31
+ 3. Open **Wake Logger** in Signal K's plugin configuration, enter the code and save. Enable the plugin if it is disabled.
32
+ 4. Check the connection status. When your boat supplies a position and the connection is online, it will appear in the vessel's **Signal K Live** view in Wake Logger.
28
33
 
29
- Install `signalk-wakelogger` from the Signal K AppStore, then open **Server → Plugin Config → Wake Logger**. Generate a pairing code in the Wake Logger vessel settings, enter it in the plugin configuration, and save. The public Wake Logger pairing endpoint is configured by default; non-production overrides must never be committed to this repository.
34
+ Pairing codes are single-use. If a code expires or is rejected, generate a new one. You do not need to pair again after an ordinary internet outage or plugin update.
30
35
 
31
- The pairing code is single-use. Temporary pairing-service failures are retried up to six times with bounded exponential delays while the code remains usable; an invalid or expired code stops immediately and requires a fresh code. MQTT credentials are returned once and stored with owner-only filesystem permissions under the plugin data directory. They never appear in normal logs or status messages.
36
+ ## Record now, upload later
32
37
 
33
- Use Wake Logger's **Replace device** workflow to move to another Signal K installation: the current association remains active until the replacement is fully provisioned. **Revoke association** stops the old device immediately without deleting its telemetry history. New pairings include a device-scoped status credential, allowing the plugin to report `Device revoked — enter a new pairing code` instead of a generic authentication error.
38
+ Recording and uploading are separate. Keep Signal K and the Wake Logger plugin running, with your boat's navigation data available, for the trip to be recorded.
34
39
 
35
- ## Telemetry and privacy
40
+ **For normal use:** Leave **Upload mode** set to **Automatic upload**. If internet access drops, the plugin stores readings onboard and uploads them when the connection returns.
36
41
 
37
- Version 1 sends position and source time, with SOG, COG, heading, depth and apparent wind when supplied by the vessel. It does not collect battery, fuel, engine temperature or other machinery data. Signal K SI values are converted to Wake Logger's documented units. Missing optional sensors are normal. Wake Logger derives true wind, VMG and final trip boundaries in the cloud.
42
+ **To deliberately defer uploading:** Pair first, then choose **Record locally** in the plugin's **Upload mode** setting and save. This setting survives restarts. When you are ready to upload, select **Automatic upload** and save again.
38
43
 
39
- The plugin does not decide who can see vessel data. Private crew access and any owner-controlled public live-sharing option are enforced by Wake Logger.
44
+ On reconnecting, the latest position is sent promptly while stored history uploads in the background. With the supporting Wake Logger service update, your vessel and trip views show upload and processing progress. A percentage is available once the recording has a known total. Missing or rejected readings are flagged rather than presented as a complete trip.
40
45
 
41
- ## Live vessel tracking
46
+ **Before a long outing:** Check available storage and your queue limits. The default limits are seven days or 250 MB, whichever is reached first. If a limit is reached, the oldest queued readings are discarded; plugin status reports the dropped count. Recording locally controls this plugin's Wake Logger connections only—it does not switch off other apps or your boat's internet access.
42
47
 
43
- After the first accepted position arrives, the vessel's **Signal K Live** panel in Wake Logger shows its latest position on a map together with SOG, COG, heading, depth and apparent wind when those values are available. The display refreshes as new telemetry arrives; missing optional sensors are shown as unavailable rather than preventing position tracking.
48
+ ## Bring your race course onboard
44
49
 
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.
50
+ Select a saved race course for your vessel in Wake Logger while internet access is available. Check that the course has synchronised before departure. The downloaded course stays on the Signal K server and remains available offline.
46
51
 
47
- ## From live data to useful trips
52
+ Open the **Wake Logger webapp** from Signal K's Web Apps list, using a phone, tablet or computer connected to the boat's network. Sign in to Signal K if prompted.
48
53
 
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.
54
+ The onboard view shows the complete course, your boat, the next mark and current leg. Distance, bearing, cross-track error, VMG and arrival estimates appear when Signal K can calculate them; unavailable readings are left clearly marked.
50
55
 
51
- ## Offline operation
56
+ Use **Advance point** to move to the next course point, or select a point and choose **Set point** to correct your progress. Progression is manual in this release: it does not automatically judge start-line crossings, mark roundings, gates or finishes.
52
57
 
53
- To defer uploads deliberately, pair the plugin first, then set **Upload mode** to **local_only** and save in Signal K Plugin Config. The setting survives restarts. Recording continues at the selected profile’s normal quality while the plugin makes no Wake Logger pairing or MQTT connection. When ready, set **automatic** and save; live tracking resumes and stored history uploads in the background. The local queue count shows how much remains. This setting controls this plugin’s traffic, not other Signal K plugins or boat internet services.
58
+ Your course is also available as a standard Signal K route for other onboard applications. If another app selects a different active route, Wake Logger shows that state. Choose **Activate Wake Logger course** when you want to return to it.
54
59
 
55
- 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.
60
+ ## Prepare your map for offline use
56
61
 
57
- Useful status examples include `recording_locally`, `Not paired`, `connecting`, `online`, `offline`, `degraded`, queue count/size, and dropped-record count. Enable telemetry debug logging only while troubleshooting; it does not log payloads or secrets.
62
+ The onboard map can show your boat and course without internet access. Basemap coverage needs a little preparation:
58
63
 
59
- An authenticated Signal K administrator can call `POST /plugins/signalk-wakelogger/forget-credentials` to forget the local cloud credential before entering a fresh pairing code. This intentionally preserves the installation identity, consumed-code fingerprint, retired device outboxes, sequence records and diagnostics; it does not revoke the cloud association, so revoke it in Wake Logger as well when retiring a device. A forgotten pairing code must be replaced with a new one.
64
+ 1. Install Signal K Charts and add local charts that you are licensed to use, such as a suitable MBTiles chart.
65
+ 2. In the Wake Logger webapp, select a **Chart source**.
66
+ 3. Choose the surrounding course margin and zoom range, then select **Verify local chart coverage**.
67
+ 4. Check the result before leaving coverage. Verification applies to the selected area and zoom range, not every possible view of the map.
60
68
 
61
- Wake Logger administrators maintain approved telemetry profiles. Vessel Owners and First Mates can select one; other crew can see the selection but cannot change it. Navigation stays at its configured priority while depth and apparent wind can slow under constrained or offline conditions. Profile revisions and application results are visible to Wake Logger operations.
69
+ Verification checks existing local chart coverage; it does not download missing maps. Automatic online map downloads are not included in this release. An online chart working at the dock does not by itself mean it will work offshore.
62
70
 
63
- ## Course navigation
71
+ If chart tiles are unavailable, the map still shows your vessel, course and marks. You can fit the map to the course or centre it on your boat.
64
72
 
65
- Select a race course in Wake Logger to deliver it to the boat. The plugin caches the course and creates a named native Signal K route, which remains available offline. If another app controls the active route, Wake Logger reports the mismatch and waits for explicit local activation. Course progression and navigation values come from Signal K; map readiness is tracked separately from course receipt. See [course synchronization](docs/course-sync.md) for the protocol, local controls and chart-readiness states.
73
+ ## Your data and privacy
66
74
 
67
- ## Development
75
+ Wake Logger records position and time, plus speed over ground, course over ground, heading, depth and apparent wind when supplied. Missing optional sensors do not prevent position tracking. This plugin does not collect engine, fuel or battery readings.
68
76
 
69
- ```sh
70
- npm ci --ignore-scripts
71
- npm run check
72
- npm run test:docker
73
- ```
77
+ Vessel roles and sharing settings in Wake Logger control who can see your data. Public live sharing is off by default and stays under the vessel owner's control.
74
78
 
75
- The Docker test builds the exact local npm tarball and installs it in a pinned official Signal K image. It plays Signal K's sample NMEA 2000 stream through verified HTTPS pairing and TLS MQTT, then proves durable acknowledgement, current-state priority, offline buffering and recovery after an abrupt Signal K stop. All certificates, credentials, broker data and volumes are disposable and local to the test stack.
79
+ ## If something is not working
76
80
 
77
- See the complete [refined implementation plan](docs/implementation-plan.md), [original-plan gap audit](docs/original-plan-gap-audit.md), [validation evidence](docs/validation.md), [development](docs/development.md), [release process](docs/release.md), [architecture](docs/architecture.md), [protocol](docs/telemetry-protocol.md), [pairing](docs/pairing.md), and [trip detection](docs/trip-detection.md). Security issues should follow [SECURITY.md](SECURITY.md).
81
+ - **Not paired:** Generate a pairing code in Wake Logger and enter it in the plugin settings.
82
+ - **Offline or waiting to upload:** Check **Upload mode**, your internet connection and the plugin's queue status. Leave the plugin running so it can record and retry.
83
+ - **No vessel position:** Check that Signal K itself is receiving a valid position from your boat.
84
+ - **Course not active:** Check whether another app selected a route. Reactivate the Wake Logger course when appropriate.
85
+ - **Blank basemap:** Check your selected chart source and local coverage. Course and vessel information can still be displayed.
86
+ - **Moving to a different Signal K server:** Use **Replace device** in Wake Logger. Use **Revoke association** when retiring an old connection; your existing trip history is retained.
87
+
88
+ For help with your account, pairing or trips, contact support through [Wake Logger](https://wakelogger.com/). When reporting a problem, include your plugin version, Signal K version and the status shown—never your pairing code or credentials.
89
+
90
+ See the **Changelog** tab for what's new in each release.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "signalk-wakelogger",
3
- "version": "0.2.0-beta.3",
3
+ "version": "0.2.0-beta.4",
4
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",
@@ -83,10 +83,10 @@
83
83
  "displayName": "Wake Logger",
84
84
  "appIcon": "./assets/wakelogger.png",
85
85
  "screenshots": [
86
- "https://unpkg.com/signalk-wakelogger@0.2.0-beta.3/assets/screenshots/live-tracking.png",
87
- "https://unpkg.com/signalk-wakelogger@0.2.0-beta.3/assets/screenshots/route-review.png",
88
- "https://unpkg.com/signalk-wakelogger@0.2.0-beta.3/assets/screenshots/plugin-status.png",
89
- "https://unpkg.com/signalk-wakelogger@0.2.0-beta.3/assets/screenshots/plugin-config.png"
86
+ "https://unpkg.com/signalk-wakelogger@0.2.0-beta.4/assets/screenshots/live-tracking.png",
87
+ "https://unpkg.com/signalk-wakelogger@0.2.0-beta.4/assets/screenshots/route-review.png",
88
+ "https://unpkg.com/signalk-wakelogger@0.2.0-beta.4/assets/screenshots/plugin-status.png",
89
+ "https://unpkg.com/signalk-wakelogger@0.2.0-beta.4/assets/screenshots/plugin-config.png"
90
90
  ]
91
91
  },
92
92
  "signalk-plugin-enabled-by-default": false