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

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
@@ -2,7 +2,25 @@
2
2
 
3
3
  Updates for boat owners and crew: what's new, what's improved, and anything you need to do.
4
4
 
5
- ## [Unreleased]
5
+ ## [0.2.0-beta.5] - 2026-09-16
6
+
7
+ ### Live tracking when you want it
8
+
9
+ - Turn live tracking on or off directly from the onboard map. When it's off, your trip still records on board and uploads later; turn it back on to resume live updates.
10
+ - The setting is remembered across restarts, and changing it does not split a trip.
11
+
12
+ ### A clearer map and upload status
13
+
14
+ - The onboard map now matches Wake Logger's live instrument view, with layouts for phones and tablets and a full-screen option.
15
+ - Historical uploads show percentage progress and an estimated time remaining once upload speed can be measured. A coloured live-tracking indicator makes connection status easier to see.
16
+ - Expandable recording details keep the main upload view compact, and only real trips are created from your recordings.
17
+
18
+ ### Crew can use their own Signal K accounts
19
+
20
+ - The onboard map no longer requires the Signal K administrator login. Any crew member with a Signal K account can sign in and view the map.
21
+ - Changing live tracking or activating a course needs an account with read/write access — ask your Signal K administrator to set this for your account. Unpairing the vessel still requires an administrator.
22
+ - If your crew don't have Signal K accounts yet, an administrator can add them in Signal K's **Security** settings.
23
+
6
24
 
7
25
  ## [0.2.0-beta.4] - 2026-09-14
8
26
 
package/README.md CHANGED
@@ -39,9 +39,11 @@ Recording and uploading are separate. Keep Signal K and the Wake Logger plugin r
39
39
 
40
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.
41
41
 
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.
42
+ **To deliberately defer uploading:** Pair first, then turn **Live tracking** off on the onboard Wake Logger map. The plugin keeps recording locally, up to your storage and age limits. Turn it on when you are ready to send your live position and upload stored history. Changing the switch does not end a trip or restart recording, and the setting survives restarts.
43
43
 
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.
44
+ You can also choose **Record locally** or **Automatic upload** in the plugin's **Upload mode** setting. These controls change the same setting.
45
+
46
+ On reconnecting, the latest position is sent promptly while stored history uploads in the background. With the supporting Wake Logger service update, your vessel view shows the percentage of stored history uploaded and an estimated time remaining once there is enough upload progress to measure. Estimates pause when the connection is lost. Detailed recording updates are available under **Upload details**. Wake Logger uses the recorded movement and times to identify trips; switching live tracking does not itself create a new trip. Missing or rejected readings are flagged rather than presented as a complete trip.
45
47
 
46
48
  **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.
47
49
 
@@ -49,9 +51,9 @@ On reconnecting, the latest position is sent promptly while stored history uploa
49
51
 
50
52
  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.
51
53
 
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.
54
+ 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. Any Signal K user account can view the onboard map; changing live tracking or activating a course requires an account with read/write access.
53
55
 
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.
56
+ The onboard map uses the same instrument styling as Wake Logger's live view, adapts to phone and tablet screens, and includes a full-screen view. It 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.
55
57
 
56
58
  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.
57
59
 
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ const node_path_1 = __importDefault(require("node:path"));
7
7
  const course_store_1 = require("./courses/course-store");
8
8
  const protocol_1 = require("./courses/protocol");
9
9
  const native_course_1 = require("./courses/native-course");
10
+ const history_1 = require("./tracking/history");
10
11
  const schema_1 = require("./config/schema");
11
12
  const defaults_1 = require("./config/defaults");
12
13
  const factory_1 = require("./outbox/factory");
@@ -21,18 +22,29 @@ const sampler_1 = require("./telemetry/sampler");
21
22
  const mqtt_client_1 = require("./transport/mqtt-client");
22
23
  const recording_store_1 = require("./trips/recording-store");
23
24
  const constructor = (app) => {
24
- const pluginVersion = '0.2.0-beta.2';
25
+ const pluginVersion = JSON.parse((0, node_fs_1.readFileSync)(node_path_1.default.join(__dirname, '..', 'package.json'), 'utf8')).version;
25
26
  let generation = 0;
26
27
  let stopSubscription;
27
28
  let sampleTimer;
28
29
  let statusTimer;
29
30
  let outbox;
31
+ let cachedQueueStats;
32
+ let queueStatsAt;
30
33
  let transport;
31
34
  let courses;
32
35
  let courseInitializationError;
33
36
  let courseFailureAcknowledgement;
34
37
  let tripState;
35
38
  let activeUploadMode = 'automatic';
39
+ let persistedUploadMode = 'automatic';
40
+ let persistenceError;
41
+ let rawConfiguration = {};
42
+ let trackingOperation = Promise.resolve();
43
+ let trackingRevision = 0;
44
+ let ready = false;
45
+ let currentSampler;
46
+ let connectTransport;
47
+ let history;
36
48
  let sampleOperation = Promise.resolve();
37
49
  let connectionState = 'unpaired';
38
50
  let activeProfile;
@@ -47,6 +59,9 @@ const constructor = (app) => {
47
59
  description: 'Live vessel tracking and resilient Signal K telemetry for Wake Logger',
48
60
  schema: schema_1.configSchema,
49
61
  start(configuration) {
62
+ ready = false;
63
+ trackingRevision += 1;
64
+ rawConfiguration = structuredClone(configuration);
50
65
  pairingAbortController?.abort();
51
66
  associationAbortController?.abort();
52
67
  // Stop all transmission immediately when a saved configuration restarts us.
@@ -57,8 +72,10 @@ const constructor = (app) => {
57
72
  await stopping;
58
73
  await previous?.catch(() => undefined);
59
74
  await cleanupResources();
60
- if (thisGeneration === generation)
75
+ if (thisGeneration === generation) {
61
76
  await initialise((0, defaults_1.parseConfig)(configuration), thisGeneration);
77
+ ready = thisGeneration === generation;
78
+ }
62
79
  })().catch((error) => {
63
80
  if (thisGeneration !== generation)
64
81
  return;
@@ -68,6 +85,8 @@ const constructor = (app) => {
68
85
  });
69
86
  },
70
87
  async stop() {
88
+ ready = false;
89
+ trackingRevision += 1;
71
90
  const running = initialization;
72
91
  generation += 1;
73
92
  pairingAbortController?.abort();
@@ -78,21 +97,86 @@ const constructor = (app) => {
78
97
  app.setPluginStatus('Wake Logger: Stopped');
79
98
  },
80
99
  registerWithRouter(router) {
81
- // Signal K protects routes registered directly on the plugin router with
82
- // administrator authentication. Do not downgrade this action via access().
83
- const adminRouter = router;
84
- adminRouter.get?.('/course', async (_request, response, next) => {
100
+ const pluginRouter = router;
101
+ // The onboard app serves ordinary crew accounts: status reads accept any
102
+ // signed-in user and control actions require readwrite (or admin).
103
+ // Unpairing stays administrator-only because routes registered directly
104
+ // on the plugin router keep Signal K's administrator default. Older
105
+ // Signal K servers without access() fall back to that default for all
106
+ // routes.
107
+ const readRouter = pluginRouter.access?.('readonly') ?? pluginRouter;
108
+ const writeRouter = pluginRouter.access?.('readwrite') ?? pluginRouter;
109
+ readRouter.get?.('/tracking', async (_request, response, next) => {
110
+ try {
111
+ response.status(200).json(await trackingStatus());
112
+ }
113
+ catch (error) {
114
+ next(error);
115
+ }
116
+ });
117
+ writeRouter.post('/tracking', async (request, response, next) => {
118
+ const mode = request.body?.uploadMode;
119
+ if (mode !== 'automatic' && mode !== 'local_only') {
120
+ response.status(400).json({ error: 'invalid_upload_mode' });
121
+ return;
122
+ }
123
+ if (!ready || !outbox || !transport || connectionState === 'device_revoked') {
124
+ response.status(409).json({ error: 'tracking_unavailable', ...await trackingStatus() });
125
+ return;
126
+ }
127
+ const revision = ++trackingRevision;
128
+ const thisGeneration = generation;
129
+ // Off wins immediately, even while an earlier options save is pending.
130
+ const stopping = mode === 'local_only' ? pauseTransmission() : undefined;
131
+ const pauseGuard = mode === 'local_only'
132
+ ? (0, history_1.durableJson)(node_path_1.default.join(app.getDataDirPath(), 'tracking-pause.json'), { paused: true, at: Date.now() }).catch((error) => { app.error(`Unable to persist immediate tracking pause: ${safeError(error)}`); })
133
+ : undefined;
134
+ const operation = trackingOperation.then(async () => {
135
+ await stopping;
136
+ await pauseGuard;
137
+ if (generation !== thisGeneration || !ready)
138
+ throw new Error('tracking_restarted');
139
+ if (revision !== trackingRevision)
140
+ return;
141
+ const wasAutomatic = activeUploadMode === 'automatic';
142
+ await persistTrackingMode(mode, revision, thisGeneration);
143
+ if (revision === trackingRevision && generation === thisGeneration) {
144
+ activeUploadMode = mode;
145
+ if (mode === 'automatic' && !wasAutomatic) {
146
+ if (outbox)
147
+ await updateHistory(await outbox.stats(), true);
148
+ await transport?.stop(false);
149
+ connectTransport?.();
150
+ }
151
+ await updateStatus();
152
+ }
153
+ });
154
+ trackingOperation = operation.catch(() => undefined);
155
+ try {
156
+ await operation;
157
+ response.status(200).json(await trackingStatus());
158
+ }
159
+ catch (error) {
160
+ if (persistenceError)
161
+ response.status(503).json({ error: 'tracking_persistence_failed', ...await trackingStatus() });
162
+ else if (error instanceof Error && error.message === 'tracking_restarted')
163
+ response.status(409).json({ error: 'tracking_restarted', ...await trackingStatus() });
164
+ else
165
+ next(error);
166
+ }
167
+ });
168
+ readRouter.get?.('/course', async (_request, response, next) => {
85
169
  try {
86
170
  response.status(200).json({
87
171
  ...(await courses?.status() ?? { desired: null, cachedCourse: null, acknowledgement: null, routePoints: [], native: { available: false, course: null, ownedRouteId: null, activeMatchesDesired: false, conflict: false } }),
88
- uploadMode: activeUploadMode, connectionState, courseError: courseInitializationError
172
+ uploadMode: activeUploadMode, connectionState, courseError: courseInitializationError ?? transport?.transportMetrics().courseSyncError
89
173
  });
90
174
  }
91
175
  catch (error) {
92
176
  next(error);
93
177
  }
94
178
  });
95
- adminRouter.post('/course/activate', async (_request, response, next) => {
179
+ writeRouter.post('/course/activate', async (_request, response, next) => {
96
180
  try {
97
181
  if (!courses)
98
182
  throw new protocol_1.CourseError('no_selected_course');
@@ -107,7 +191,7 @@ const constructor = (app) => {
107
191
  next(error);
108
192
  }
109
193
  });
110
- adminRouter.post('/course/map-readiness', async (request, response, next) => {
194
+ writeRouter.post('/course/map-readiness', async (request, response, next) => {
111
195
  try {
112
196
  if (!courses)
113
197
  throw new protocol_1.CourseError('no_selected_course');
@@ -123,8 +207,11 @@ const constructor = (app) => {
123
207
  next(error);
124
208
  }
125
209
  });
126
- adminRouter.post('/forget-credentials', async (_request, response, next) => {
210
+ // Registered directly: unpairing keeps Signal K's admin-only default.
211
+ pluginRouter.post('/forget-credentials', async (_request, response, next) => {
127
212
  try {
213
+ ready = false;
214
+ trackingRevision += 1;
128
215
  generation += 1;
129
216
  pairingAbortController?.abort();
130
217
  associationAbortController?.abort();
@@ -151,6 +238,7 @@ const constructor = (app) => {
151
238
  openapi: '3.0.3',
152
239
  info: { title: 'Wake Logger Signal K plugin', version: pluginVersion },
153
240
  paths: {
241
+ '/tracking': { get: { summary: 'Read live upload mode and the local queue', responses: { '200': { description: 'Tracking status' } } }, post: { summary: 'Persist and apply live upload mode without restarting recording', responses: { '200': { description: 'Tracking mode saved' }, '400': { description: 'Invalid mode' }, '409': { description: 'Tracking unavailable' }, '503': { description: 'Persistence failed; see actual mode in response' } } } },
154
242
  '/course': { get: { summary: 'Read cached and native course state', responses: { '200': { description: 'Course state' } } } },
155
243
  '/course/map-readiness': { post: { summary: 'Report locally verified chart readiness for a course revision', responses: { '200': { description: 'Readiness saved' }, '409': { description: 'Invalid or stale revision' } } } },
156
244
  '/course/activate': { post: { summary: 'Explicitly activate the selected cached course', responses: { '200': { description: 'Course active' }, '409': { description: 'No selected course or native course unavailable' } } } },
@@ -173,6 +261,11 @@ const constructor = (app) => {
173
261
  sampleTimer = undefined;
174
262
  statusTimer = undefined;
175
263
  await transport?.stop();
264
+ await trackingOperation;
265
+ await history?.close();
266
+ history = undefined;
267
+ currentSampler = undefined;
268
+ connectTransport = undefined;
176
269
  await sampleOperation;
177
270
  await courses?.close();
178
271
  courses = undefined;
@@ -181,13 +274,29 @@ const constructor = (app) => {
181
274
  transport = undefined;
182
275
  await outbox?.close();
183
276
  outbox = undefined;
277
+ cachedQueueStats = undefined;
278
+ queueStatsAt = undefined;
184
279
  tripState = undefined;
185
280
  pairingAbortController = undefined;
186
281
  associationAbortController = undefined;
187
282
  associationCheck = undefined;
188
283
  }
189
284
  async function initialise(config, thisGeneration) {
285
+ persistedUploadMode = config.uploadMode;
286
+ persistenceError = undefined;
190
287
  activeUploadMode = config.uploadMode;
288
+ try {
289
+ await node_fs_1.promises.access(node_path_1.default.join(app.getDataDirPath(), 'tracking-pause.json'));
290
+ activeUploadMode = 'local_only';
291
+ persistenceError = 'A previous save failed; uploads remain paused until this setting is saved successfully.';
292
+ }
293
+ catch (error) {
294
+ if (error.code !== 'ENOENT') {
295
+ activeUploadMode = 'local_only';
296
+ persistenceError = 'Unable to read the upload safety state; uploads remain paused.';
297
+ }
298
+ }
299
+ config.uploadMode = activeUploadMode;
191
300
  const dataDirectory = app.getDataDirPath();
192
301
  const credentialStore = new credentials_1.CredentialStore(node_path_1.default.join(dataDirectory, 'identity'));
193
302
  let credentials = await credentialStore.load();
@@ -265,7 +374,8 @@ const constructor = (app) => {
265
374
  const legacy = credentials.telemetryProfile;
266
375
  const profile = await profileStore.load() ?? credentialProfile ?? (0, profile_1.legacyProfile)(legacy?.sample_period_ms ?? config.samplePeriodMs, legacy?.batch_size);
267
376
  activeProfile = profile;
268
- const sampler = new sampler_1.PathSampler(profile, config.uploadMode === 'local_only' ? 'NORMAL' : 'OFFLINE');
377
+ const sampler = new sampler_1.PathSampler(profile, activeUploadMode === 'local_only' ? 'NORMAL' : 'OFFLINE');
378
+ currentSampler = sampler;
269
379
  const selected = await (0, factory_1.createOutbox)(app, dataDirectory, credentials.deviceId, {
270
380
  maxBytes: config.maxOutboxMb * 1024 * 1024,
271
381
  maxAgeMs: config.maxOutboxDays * 24 * 60 * 60 * 1000,
@@ -273,6 +383,16 @@ const constructor = (app) => {
273
383
  }, credentials.outboxBinding?.backend);
274
384
  outbox = selected.store;
275
385
  storageBackend = selected.backend;
386
+ history = new history_1.UploadHistory(node_path_1.default.join(dataDirectory, 'uploads', credentials.deviceId, 'state.json'));
387
+ try {
388
+ await history.open();
389
+ }
390
+ catch (error) {
391
+ app.error(`Wake Logger upload progress unavailable: ${safeError(error)}`);
392
+ history = undefined;
393
+ }
394
+ if (history)
395
+ await updateHistory(await outbox.stats(), activeUploadMode === 'automatic');
276
396
  let nextSequence = (await outbox.stats()).currentSequence + 1;
277
397
  if (!credentials.outboxBinding) {
278
398
  credentials.outboxBinding = { version: 1, backend: selected.backend, initializedAt: Date.now() };
@@ -280,40 +400,49 @@ const constructor = (app) => {
280
400
  }
281
401
  if (generation !== thisGeneration)
282
402
  return;
283
- transport = new mqtt_client_1.WakeLoggerTransport(credentials, outbox, {
284
- profile,
285
- onState: (state, detail) => {
286
- if (connectionState === 'device_revoked')
287
- return;
288
- connectionState = state;
289
- void updateStatus(detail);
290
- if (state === 'authentication_failed')
291
- void confirmAssociation(credentials, thisGeneration);
292
- },
293
- onCourse: async (payload) => {
294
- if (courses)
295
- return courses.receive(payload);
296
- let revision = 0;
297
- try {
298
- revision = (0, protocol_1.parseCourse)(payload).revision;
299
- }
300
- catch { /* Report unavailable storage without accepting a new course. */ }
301
- courseFailureAcknowledgement = { v: 1, revision, status: 'rejected', errorCode: 'course_storage_unavailable' };
302
- return courseFailureAcknowledgement;
303
- },
304
- getCourseAcknowledgement: () => courses?.acknowledgement() ?? courseFailureAcknowledgement,
305
- onRecordingAcks: async (acks) => {
306
- sampleOperation = sampleOperation.then(() => trip.acknowledge(acks));
307
- await sampleOperation;
308
- },
309
- onMode: (mode) => sampler.updateMode(mode),
310
- onProfile: async (replacement) => {
311
- await profileStore.save(replacement);
312
- activeProfile = replacement;
313
- sampler.updateProfile(replacement);
314
- },
315
- debug: config.debugTelemetry ? (message) => app.debug(message) : undefined
316
- });
403
+ connectTransport = () => {
404
+ const instance = new mqtt_client_1.WakeLoggerTransport(credentials, selected.store, {
405
+ profile: activeProfile ?? profile,
406
+ onState: (state, detail) => {
407
+ if (transport !== instance || activeUploadMode !== 'automatic' || connectionState === 'device_revoked')
408
+ return;
409
+ connectionState = state;
410
+ void updateStatus(detail, state === 'online');
411
+ if (state === 'authentication_failed')
412
+ void confirmAssociation(credentials, thisGeneration);
413
+ },
414
+ onCourse: async (payload) => {
415
+ if (courses)
416
+ return courses.receive(payload);
417
+ let revision = 0;
418
+ try {
419
+ revision = (0, protocol_1.parseCourse)(payload).revision;
420
+ }
421
+ catch { /* Report unavailable storage without accepting a new course. */ }
422
+ courseFailureAcknowledgement = { v: 1, revision, status: 'rejected', errorCode: 'course_storage_unavailable' };
423
+ return courseFailureAcknowledgement;
424
+ },
425
+ getCourseAcknowledgement: () => courses?.acknowledgement() ?? courseFailureAcknowledgement,
426
+ onRecordingAcks: async (acks) => {
427
+ sampleOperation = sampleOperation.then(() => trip.acknowledge(acks));
428
+ await sampleOperation;
429
+ },
430
+ onMode: (mode) => { if (transport === instance)
431
+ sampler.updateMode(activeUploadMode === 'local_only' ? 'NORMAL' : mode); },
432
+ onProfile: async (replacement) => {
433
+ await profileStore.save(replacement);
434
+ activeProfile = replacement;
435
+ sampler.updateProfile(replacement);
436
+ },
437
+ debug: config.debugTelemetry ? (message) => app.debug(message) : undefined
438
+ });
439
+ transport = instance;
440
+ instance.start();
441
+ };
442
+ // Keep an inert transport in local-only mode for local status/ACK methods.
443
+ if (activeUploadMode === 'local_only') {
444
+ transport = new mqtt_client_1.WakeLoggerTransport(credentials, selected.store, { profile, onState: () => undefined });
445
+ }
317
446
  stopSubscription = (0, subscriber_1.subscribeToTelemetry)(app, (delta) => normaliser.ingest(delta));
318
447
  const sample = async () => {
319
448
  if (generation !== thisGeneration)
@@ -347,18 +476,21 @@ const constructor = (app) => {
347
476
  };
348
477
  scheduleSample();
349
478
  statusTimer = setInterval(() => void updateStatus(), 10_000);
350
- if (config.uploadMode === 'automatic')
351
- transport.start();
479
+ if (activeUploadMode === 'automatic')
480
+ connectTransport();
352
481
  else
353
482
  connectionState = 'recording_locally';
354
483
  await updateStatus();
355
484
  }
356
- async function updateStatus(detail) {
485
+ async function updateStatus(detail, beginHistory = false) {
357
486
  if (connectionState === 'unpaired' || !outbox) {
358
487
  app.setPluginStatus('Wake Logger: Not paired');
359
488
  return;
360
489
  }
361
490
  const stats = await outbox.stats();
491
+ cachedQueueStats = stats;
492
+ queueStatsAt = Date.now();
493
+ await updateHistory(stats, beginHistory);
362
494
  const queue = `${stats.messageCount} queued, ${(stats.diskBytes / 1024 / 1024).toFixed(1)} MB`;
363
495
  const dropped = stats.droppedCount ? `, ${stats.droppedCount} dropped` : '';
364
496
  const sequence = `, seq ${stats.acknowledgedSequence}/${stats.currentSequence}`;
@@ -366,6 +498,7 @@ const constructor = (app) => {
366
498
  const extra = detail ? ` — ${detail}` : '';
367
499
  transport?.updateStatus({
368
500
  pluginVersion,
501
+ historicalUpload: history?.current(),
369
502
  uploadMode: activeUploadMode,
370
503
  recordings: tripState?.statusManifests(),
371
504
  connectionState,
@@ -388,6 +521,67 @@ const constructor = (app) => {
388
521
  app.setPluginStatus(`Wake Logger: ${connectionState} — ${queue}${dropped}${sequence}${trip}${extra}`);
389
522
  void transport?.publishCourseAcknowledgement().catch((error) => app.error(`Unable to report Wake Logger course: ${safeError(error)}`));
390
523
  }
524
+ async function updateHistory(stats, begin = false) {
525
+ try {
526
+ await history?.update(stats, begin);
527
+ }
528
+ catch (error) {
529
+ app.error(`Wake Logger upload progress unavailable: ${safeError(error)}`);
530
+ history = undefined;
531
+ }
532
+ }
533
+ async function trackingStatus() {
534
+ // File outbox stats scan the durable queue; browser polls reuse the
535
+ // normal status refresh instead of taking the outbox lock every request.
536
+ const stats = cachedQueueStats;
537
+ return {
538
+ uploadMode: activeUploadMode, liveTrackingEnabled: activeUploadMode === 'automatic',
539
+ persistedUploadMode, persistenceError: persistenceError ?? null,
540
+ paired: !!outbox, recording: !!stopSubscription && !!sampleTimer,
541
+ available: ready && !!outbox && connectionState !== 'device_revoked',
542
+ connectionState, historicalUpload: history?.current() ?? null,
543
+ queue: stats ? { messageCount: stats.messageCount, diskBytes: stats.diskBytes,
544
+ oldestCapturedAt: stats.oldestCapturedAt ?? null, acknowledgedSequence: stats.acknowledgedSequence,
545
+ currentSequence: stats.currentSequence, droppedCount: stats.droppedCount } : null,
546
+ queueStatsAt: queueStatsAt ?? null, at: Date.now()
547
+ };
548
+ }
549
+ function pauseTransmission() {
550
+ activeUploadMode = 'local_only';
551
+ pairingAbortController?.abort();
552
+ associationAbortController?.abort();
553
+ const stopping = transport?.stop(false);
554
+ currentSampler?.updateMode('NORMAL');
555
+ connectionState = 'recording_locally';
556
+ return stopping;
557
+ }
558
+ async function persistTrackingMode(mode, revision, thisGeneration) {
559
+ const guard = node_path_1.default.join(app.getDataDirPath(), 'tracking-pause.json');
560
+ try {
561
+ const options = app.readPluginOptions?.();
562
+ const configuration = { ...(options?.configuration ?? rawConfiguration), uploadMode: mode };
563
+ await new Promise((resolve, reject) => {
564
+ app.savePluginOptions(configuration, (error) => error ? reject(error) : resolve());
565
+ });
566
+ rawConfiguration = configuration;
567
+ persistedUploadMode = mode;
568
+ if (revision === trackingRevision && generation === thisGeneration)
569
+ await node_fs_1.promises.unlink(guard).catch((error) => { if (error.code !== 'ENOENT')
570
+ throw error; });
571
+ persistenceError = undefined;
572
+ }
573
+ catch (error) {
574
+ persistenceError = safeError(error);
575
+ await pauseTransmission();
576
+ try {
577
+ await (0, history_1.durableJson)(guard, { paused: true, at: Date.now() });
578
+ }
579
+ catch {
580
+ persistenceError += '; unable to persist the safety pause — restart persistence is not confirmed';
581
+ }
582
+ throw error;
583
+ }
584
+ }
391
585
  function confirmAssociation(credentials, thisGeneration) {
392
586
  if (associationCheck)
393
587
  return associationCheck;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export declare class FileOutbox implements OutboxStore {
21
21
  private readMetadata;
22
22
  private persistMetadata;
23
23
  private readSegments;
24
+ private readSegment;
24
25
  private segmentNames;
25
26
  private assertOpen;
26
27
  private exclusive;