@kraki/head 0.11.1 → 0.12.0
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/dist/cli.js +48 -43
- package/dist/cli.js.map +1 -1
- package/dist/server.d.ts +33 -0
- package/dist/server.js +289 -54
- package/dist/server.js.map +1 -1
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -289,8 +289,51 @@ logger.info('Kraki Head starting...', { mode: IS_CONNECTED_MODE ? 'connected' :
|
|
|
289
289
|
let authBackend;
|
|
290
290
|
let accountApi;
|
|
291
291
|
let storage;
|
|
292
|
-
let pushManager;
|
|
293
292
|
let directAuthProviders;
|
|
293
|
+
// --- Push providers (all modes — edges need to deliver push to offline devices) ---
|
|
294
|
+
let pushManager;
|
|
295
|
+
if (PUSH_PROVIDERS.length > 0) {
|
|
296
|
+
const pushProviderInstances = [];
|
|
297
|
+
for (const provider of PUSH_PROVIDERS) {
|
|
298
|
+
switch (provider) {
|
|
299
|
+
case 'apns': {
|
|
300
|
+
const keyPath = process.env.APNS_KEY_PATH;
|
|
301
|
+
const keyId = process.env.APNS_KEY_ID;
|
|
302
|
+
const teamId = process.env.APNS_TEAM_ID;
|
|
303
|
+
const bundleId = process.env.APNS_BUNDLE_ID;
|
|
304
|
+
if (!keyPath || !keyId || !teamId || !bundleId) {
|
|
305
|
+
console.error('Error: APNs requires APNS_KEY_PATH, APNS_KEY_ID, APNS_TEAM_ID, APNS_BUNDLE_ID');
|
|
306
|
+
process.exit(1);
|
|
307
|
+
}
|
|
308
|
+
pushProviderInstances.push(new ApnsProvider({
|
|
309
|
+
keyPath, keyId, teamId, bundleId,
|
|
310
|
+
environment: process.env.APNS_ENVIRONMENT ?? 'production',
|
|
311
|
+
}));
|
|
312
|
+
logger.info('APNs push provider configured', { bundleId, environment: process.env.APNS_ENVIRONMENT ?? 'production' });
|
|
313
|
+
break;
|
|
314
|
+
}
|
|
315
|
+
case 'web_push': {
|
|
316
|
+
const vapidPublicKey = process.env.VAPID_PUBLIC_KEY;
|
|
317
|
+
const vapidPrivateKey = process.env.VAPID_PRIVATE_KEY;
|
|
318
|
+
const vapidEmail = process.env.VAPID_EMAIL;
|
|
319
|
+
if (!vapidPublicKey || !vapidPrivateKey || !vapidEmail) {
|
|
320
|
+
console.error('Error: Web Push requires VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_EMAIL');
|
|
321
|
+
process.exit(1);
|
|
322
|
+
}
|
|
323
|
+
pushProviderInstances.push(new WebPushProvider({ vapidPublicKey, vapidPrivateKey, vapidEmail }));
|
|
324
|
+
logger.info('Web Push provider configured', { email: vapidEmail });
|
|
325
|
+
break;
|
|
326
|
+
}
|
|
327
|
+
default:
|
|
328
|
+
console.error(`Error: Unknown push provider '${provider}'. Use: apns, web_push`);
|
|
329
|
+
process.exit(1);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
// Storage needed for push token lookups — create early if not yet initialized
|
|
333
|
+
if (!storage)
|
|
334
|
+
storage = new Storage(DB_PATH);
|
|
335
|
+
pushManager = new PushManager(storage, pushProviderInstances);
|
|
336
|
+
}
|
|
294
337
|
if (IS_CONNECTED_MODE) {
|
|
295
338
|
// Connected mode: delegate auth to remote account service
|
|
296
339
|
if (!SERVICE_KEY) {
|
|
@@ -303,56 +346,18 @@ if (IS_CONNECTED_MODE) {
|
|
|
303
346
|
await remoteBackend.refreshConfig();
|
|
304
347
|
logger.info('Connected to account service', { url: ACCOUNT_URL, region: REGION });
|
|
305
348
|
// Connected mode still needs local storage for devices, pending, push tokens
|
|
306
|
-
|
|
349
|
+
if (!storage)
|
|
350
|
+
storage = new Storage(DB_PATH);
|
|
307
351
|
}
|
|
308
352
|
else {
|
|
309
353
|
// Standalone mode: local auth + expose account API
|
|
310
354
|
const authProviders = await createAuthProviders();
|
|
311
355
|
directAuthProviders = authProviders;
|
|
312
|
-
|
|
356
|
+
if (!storage)
|
|
357
|
+
storage = new Storage(DB_PATH);
|
|
313
358
|
if (REGION && PUBLIC_RELAY_URL) {
|
|
314
359
|
storage.upsertRegion(REGION, PUBLIC_RELAY_URL, REGION_DISPLAY_NAME || REGION, true);
|
|
315
360
|
}
|
|
316
|
-
// Push providers (standalone only — in connected mode, push is handled by the account service's head)
|
|
317
|
-
if (PUSH_PROVIDERS.length > 0) {
|
|
318
|
-
const pushProviderInstances = [];
|
|
319
|
-
for (const provider of PUSH_PROVIDERS) {
|
|
320
|
-
switch (provider) {
|
|
321
|
-
case 'apns': {
|
|
322
|
-
const keyPath = process.env.APNS_KEY_PATH;
|
|
323
|
-
const keyId = process.env.APNS_KEY_ID;
|
|
324
|
-
const teamId = process.env.APNS_TEAM_ID;
|
|
325
|
-
const bundleId = process.env.APNS_BUNDLE_ID;
|
|
326
|
-
if (!keyPath || !keyId || !teamId || !bundleId) {
|
|
327
|
-
console.error('Error: APNs requires APNS_KEY_PATH, APNS_KEY_ID, APNS_TEAM_ID, APNS_BUNDLE_ID');
|
|
328
|
-
process.exit(1);
|
|
329
|
-
}
|
|
330
|
-
pushProviderInstances.push(new ApnsProvider({
|
|
331
|
-
keyPath, keyId, teamId, bundleId,
|
|
332
|
-
environment: process.env.APNS_ENVIRONMENT ?? 'production',
|
|
333
|
-
}));
|
|
334
|
-
logger.info('APNs push provider configured', { bundleId, environment: process.env.APNS_ENVIRONMENT ?? 'production' });
|
|
335
|
-
break;
|
|
336
|
-
}
|
|
337
|
-
case 'web_push': {
|
|
338
|
-
const vapidPublicKey = process.env.VAPID_PUBLIC_KEY;
|
|
339
|
-
const vapidPrivateKey = process.env.VAPID_PRIVATE_KEY;
|
|
340
|
-
const vapidEmail = process.env.VAPID_EMAIL;
|
|
341
|
-
if (!vapidPublicKey || !vapidPrivateKey || !vapidEmail) {
|
|
342
|
-
console.error('Error: Web Push requires VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_EMAIL');
|
|
343
|
-
process.exit(1);
|
|
344
|
-
}
|
|
345
|
-
pushProviderInstances.push(new WebPushProvider({ vapidPublicKey, vapidPrivateKey, vapidEmail }));
|
|
346
|
-
logger.info('Web Push provider configured', { email: vapidEmail });
|
|
347
|
-
break;
|
|
348
|
-
}
|
|
349
|
-
default:
|
|
350
|
-
console.error(`Error: Unknown push provider '${provider}'. Use: apns, web_push`);
|
|
351
|
-
process.exit(1);
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
pushManager = new PushManager(storage, pushProviderInstances);
|
|
355
|
-
}
|
|
356
361
|
const localBackend = new LocalAuthBackend({
|
|
357
362
|
storage,
|
|
358
363
|
authProviders,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -27,8 +27,31 @@ export declare class HeadServer {
|
|
|
27
27
|
private userByDevice;
|
|
28
28
|
private clients;
|
|
29
29
|
private pingTimer;
|
|
30
|
+
private retryTimer;
|
|
30
31
|
constructor(storage: Storage, options: HeadServerOptions);
|
|
31
32
|
private startPingInterval;
|
|
33
|
+
/** Run the retry pass at a fixed cadence, independent of the slower liveness
|
|
34
|
+
* ping. Detection latency for a dropped message is bounded by the recipient's
|
|
35
|
+
* ping cadence (~10s) + this interval. */
|
|
36
|
+
private startRetryInterval;
|
|
37
|
+
/** Stamp a message with relaySeq, buffer for retry, and send. Use this for
|
|
38
|
+
* any post-auth message head expects the peer to receive reliably. Skip for
|
|
39
|
+
* pings, pongs, errors, and pre-auth handshake messages.
|
|
40
|
+
*
|
|
41
|
+
* If the message has incoming `relaySeq`/`ack` fields from another hop
|
|
42
|
+
* (e.g. a forwarded unicast/broadcast), they are stripped — these are
|
|
43
|
+
* per-hop and not end-to-end. */
|
|
44
|
+
private trackedSend;
|
|
45
|
+
/** Track an incoming relaySeq from peer. Returns true if message is a
|
|
46
|
+
* duplicate that should be dropped silently. */
|
|
47
|
+
private trackInboundRelaySeq;
|
|
48
|
+
/** Process an incoming ack field from any message type. Prunes the in-flight
|
|
49
|
+
* buffer and flips ackSupported on first sighting. */
|
|
50
|
+
private processAck;
|
|
51
|
+
/** Walk all connections; re-send unacked messages that have aged past
|
|
52
|
+
* RETRY_AFTER_MS. Close connections whose oldest unacked message has
|
|
53
|
+
* exceeded MAX_RETRIES (forces clean reconnect via existing replay path). */
|
|
54
|
+
private runRetryPass;
|
|
32
55
|
private getAuthProvider;
|
|
33
56
|
private getAuthProviderForMode;
|
|
34
57
|
private getGitHubClientId;
|
|
@@ -98,5 +121,15 @@ export declare class HeadServer {
|
|
|
98
121
|
}>;
|
|
99
122
|
}>;
|
|
100
123
|
};
|
|
124
|
+
/** Test hook: inspect delivery state for an online device. Not used in prod. */
|
|
125
|
+
getDeliveryState(deviceId: string): {
|
|
126
|
+
inFlightCount: number;
|
|
127
|
+
relaySeqCounter: number;
|
|
128
|
+
lastAckedSeq: number;
|
|
129
|
+
ackSupported: boolean;
|
|
130
|
+
lastReceivedRelaySeq: number;
|
|
131
|
+
} | undefined;
|
|
132
|
+
/** Test hook: force a retry pass without waiting for the timer. */
|
|
133
|
+
forceRetryPass(): void;
|
|
101
134
|
close(): void;
|
|
102
135
|
}
|
package/dist/server.js
CHANGED
|
@@ -13,6 +13,17 @@ function verifySignature(nonce, signature, publicKeyPem) {
|
|
|
13
13
|
return verify.verify(publicKeyPem, signature, 'base64');
|
|
14
14
|
}
|
|
15
15
|
const DEFAULT_MAX_PAYLOAD = 10 * 1024 * 1024;
|
|
16
|
+
// ── Delivery assurance tuning ──────────────────────────────
|
|
17
|
+
/** Max in-flight (unacked) messages per connection before forcing reconnect. */
|
|
18
|
+
const MAX_IN_FLIGHT = 200;
|
|
19
|
+
/** How long to wait for an ack before re-sending a message (ms). */
|
|
20
|
+
const RETRY_AFTER_MS = 5_000;
|
|
21
|
+
/** Max retries before closing the connection (forces clean reconnect). */
|
|
22
|
+
const MAX_RETRIES = 3;
|
|
23
|
+
/** How often the retry pass runs (ms). Independent of the slower 30s ping timer
|
|
24
|
+
* so detection latency tracks the recipient's ping cadence (~10s), not the
|
|
25
|
+
* liveness check cadence. */
|
|
26
|
+
const RETRY_CHECK_INTERVAL_MS = 2_500;
|
|
16
27
|
function isValidMessage(msg) {
|
|
17
28
|
if (typeof msg !== 'object' || msg === null)
|
|
18
29
|
return false;
|
|
@@ -53,6 +64,7 @@ export class HeadServer {
|
|
|
53
64
|
userByDevice = new Map();
|
|
54
65
|
clients = new Map();
|
|
55
66
|
pingTimer = null;
|
|
67
|
+
retryTimer = null;
|
|
56
68
|
constructor(storage, options) {
|
|
57
69
|
this.storage = storage;
|
|
58
70
|
this.options = options;
|
|
@@ -62,6 +74,7 @@ export class HeadServer {
|
|
|
62
74
|
});
|
|
63
75
|
this.wss.on('connection', (ws, req) => this.onConnection(ws, req));
|
|
64
76
|
this.startPingInterval();
|
|
77
|
+
this.startRetryInterval();
|
|
65
78
|
// Expire old pending messages on startup
|
|
66
79
|
const expired = this.storage.expirePending();
|
|
67
80
|
if (expired > 0) {
|
|
@@ -70,7 +83,6 @@ export class HeadServer {
|
|
|
70
83
|
}
|
|
71
84
|
startPingInterval() {
|
|
72
85
|
this.pingTimer = setInterval(() => {
|
|
73
|
-
const jsonPing = JSON.stringify({ type: 'ping' });
|
|
74
86
|
for (const [deviceId, ws] of this.connections) {
|
|
75
87
|
const state = this.clients.get(ws);
|
|
76
88
|
if (state && !state.isAlive) {
|
|
@@ -84,7 +96,13 @@ export class HeadServer {
|
|
|
84
96
|
try {
|
|
85
97
|
if (ws.readyState === WebSocket.OPEN) {
|
|
86
98
|
ws.ping(); // protocol-level ping (browsers auto-respond)
|
|
87
|
-
|
|
99
|
+
// JSON ping for proxy keepalive — include ack so the peer can
|
|
100
|
+
// prune its in-flight buffer even when no other traffic flows.
|
|
101
|
+
const pingMsg = { type: 'ping' };
|
|
102
|
+
if (state && state.lastReceivedRelaySeq > 0) {
|
|
103
|
+
pingMsg.ack = state.lastReceivedRelaySeq;
|
|
104
|
+
}
|
|
105
|
+
ws.send(JSON.stringify(pingMsg));
|
|
88
106
|
}
|
|
89
107
|
}
|
|
90
108
|
catch {
|
|
@@ -99,6 +117,175 @@ export class HeadServer {
|
|
|
99
117
|
}
|
|
100
118
|
}, HeadServer.PING_INTERVAL);
|
|
101
119
|
}
|
|
120
|
+
// ── Delivery assurance ───────────────────────────────────
|
|
121
|
+
/** Run the retry pass at a fixed cadence, independent of the slower liveness
|
|
122
|
+
* ping. Detection latency for a dropped message is bounded by the recipient's
|
|
123
|
+
* ping cadence (~10s) + this interval. */
|
|
124
|
+
startRetryInterval() {
|
|
125
|
+
this.retryTimer = setInterval(() => {
|
|
126
|
+
this.runRetryPass();
|
|
127
|
+
}, RETRY_CHECK_INTERVAL_MS);
|
|
128
|
+
}
|
|
129
|
+
/** Stamp a message with relaySeq, buffer for retry, and send. Use this for
|
|
130
|
+
* any post-auth message head expects the peer to receive reliably. Skip for
|
|
131
|
+
* pings, pongs, errors, and pre-auth handshake messages.
|
|
132
|
+
*
|
|
133
|
+
* If the message has incoming `relaySeq`/`ack` fields from another hop
|
|
134
|
+
* (e.g. a forwarded unicast/broadcast), they are stripped — these are
|
|
135
|
+
* per-hop and not end-to-end. */
|
|
136
|
+
trackedSend(ws, state, msg) {
|
|
137
|
+
if (ws.readyState !== WebSocket.OPEN)
|
|
138
|
+
return;
|
|
139
|
+
state.relaySeqCounter += 1;
|
|
140
|
+
const relaySeq = state.relaySeqCounter;
|
|
141
|
+
// Strip any per-hop tracking fields from the source message, then stamp ours.
|
|
142
|
+
const { relaySeq: _ignoredSeq, ack: _ignoredAck, ...rest } = msg;
|
|
143
|
+
const stamped = { ...rest, relaySeq };
|
|
144
|
+
// Piggyback our own ack of what we've received from this peer on this connection.
|
|
145
|
+
if (state.lastReceivedRelaySeq > 0) {
|
|
146
|
+
stamped.ack = state.lastReceivedRelaySeq;
|
|
147
|
+
}
|
|
148
|
+
const payload = JSON.stringify(stamped);
|
|
149
|
+
// Evict oldest if buffer full. With MAX_RETRIES=3 and 5s retry, hitting
|
|
150
|
+
// MAX_IN_FLIGHT means the peer is pathologically slow — force reconnect.
|
|
151
|
+
if (state.inFlight.length >= MAX_IN_FLIGHT) {
|
|
152
|
+
getLogger().warn('In-flight buffer full, forcing reconnect', {
|
|
153
|
+
deviceId: state.deviceId,
|
|
154
|
+
inFlight: state.inFlight.length,
|
|
155
|
+
});
|
|
156
|
+
if (state.deviceId) {
|
|
157
|
+
this.removeConnection(state.deviceId);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
try {
|
|
161
|
+
ws.close();
|
|
162
|
+
}
|
|
163
|
+
catch { /* ignore */ }
|
|
164
|
+
}
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
state.inFlight.push({
|
|
168
|
+
relaySeq,
|
|
169
|
+
payload,
|
|
170
|
+
sentAt: Date.now(),
|
|
171
|
+
retries: 0,
|
|
172
|
+
});
|
|
173
|
+
try {
|
|
174
|
+
ws.send(payload);
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
// Send failed — connection is likely dead. Drop the connection so
|
|
178
|
+
// the client can reconnect cleanly. Retry pass will not re-send to
|
|
179
|
+
// a dead connection.
|
|
180
|
+
if (state.deviceId)
|
|
181
|
+
this.removeConnection(state.deviceId);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/** Track an incoming relaySeq from peer. Returns true if message is a
|
|
185
|
+
* duplicate that should be dropped silently. */
|
|
186
|
+
trackInboundRelaySeq(state, msg) {
|
|
187
|
+
if (!('relaySeq' in msg))
|
|
188
|
+
return false;
|
|
189
|
+
const seq = msg.relaySeq;
|
|
190
|
+
if (typeof seq !== 'number' || !Number.isFinite(seq) || seq <= 0)
|
|
191
|
+
return false;
|
|
192
|
+
if (state.seenRelaySeqs.has(seq)) {
|
|
193
|
+
return true; // duplicate
|
|
194
|
+
}
|
|
195
|
+
// Bound the set so it doesn't grow unbounded. Drop the oldest tracked
|
|
196
|
+
// ack window when full — at this point any duplicate older than the
|
|
197
|
+
// window would have been delivered long ago.
|
|
198
|
+
if (state.seenRelaySeqs.size >= MAX_IN_FLIGHT) {
|
|
199
|
+
const iter = state.seenRelaySeqs.values().next();
|
|
200
|
+
if (!iter.done)
|
|
201
|
+
state.seenRelaySeqs.delete(iter.value);
|
|
202
|
+
}
|
|
203
|
+
state.seenRelaySeqs.add(seq);
|
|
204
|
+
if (seq > state.lastReceivedRelaySeq) {
|
|
205
|
+
state.lastReceivedRelaySeq = seq;
|
|
206
|
+
}
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
/** Process an incoming ack field from any message type. Prunes the in-flight
|
|
210
|
+
* buffer and flips ackSupported on first sighting. */
|
|
211
|
+
processAck(state, msg) {
|
|
212
|
+
if (!('ack' in msg))
|
|
213
|
+
return;
|
|
214
|
+
const ack = msg.ack;
|
|
215
|
+
if (typeof ack !== 'number' || !Number.isFinite(ack))
|
|
216
|
+
return;
|
|
217
|
+
// Presence of the field at all marks the peer as ack-capable, even if
|
|
218
|
+
// ack: 0. Once flipped, it stays true for the lifetime of the connection.
|
|
219
|
+
state.ackSupported = true;
|
|
220
|
+
if (ack > state.lastAckedSeq) {
|
|
221
|
+
state.lastAckedSeq = ack;
|
|
222
|
+
// Prune everything ≤ ack from the in-flight buffer.
|
|
223
|
+
if (state.inFlight.length > 0) {
|
|
224
|
+
let firstUnacked = 0;
|
|
225
|
+
while (firstUnacked < state.inFlight.length && state.inFlight[firstUnacked].relaySeq <= ack) {
|
|
226
|
+
firstUnacked += 1;
|
|
227
|
+
}
|
|
228
|
+
if (firstUnacked > 0) {
|
|
229
|
+
state.inFlight.splice(0, firstUnacked);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/** Walk all connections; re-send unacked messages that have aged past
|
|
235
|
+
* RETRY_AFTER_MS. Close connections whose oldest unacked message has
|
|
236
|
+
* exceeded MAX_RETRIES (forces clean reconnect via existing replay path). */
|
|
237
|
+
runRetryPass() {
|
|
238
|
+
const logger = getLogger();
|
|
239
|
+
const now = Date.now();
|
|
240
|
+
for (const [deviceId, ws] of this.connections) {
|
|
241
|
+
const state = this.clients.get(ws);
|
|
242
|
+
if (!state)
|
|
243
|
+
continue;
|
|
244
|
+
if (!state.ackSupported)
|
|
245
|
+
continue; // Old client — skip retry
|
|
246
|
+
if (state.inFlight.length === 0)
|
|
247
|
+
continue;
|
|
248
|
+
if (ws.readyState !== WebSocket.OPEN)
|
|
249
|
+
continue;
|
|
250
|
+
state.lastRetryAt = now;
|
|
251
|
+
let killConnection = false;
|
|
252
|
+
for (const entry of state.inFlight) {
|
|
253
|
+
// Already acked? (Shouldn't normally happen — processAck prunes —
|
|
254
|
+
// but guard against races.)
|
|
255
|
+
if (entry.relaySeq <= state.lastAckedSeq)
|
|
256
|
+
continue;
|
|
257
|
+
if (now - entry.sentAt < RETRY_AFTER_MS)
|
|
258
|
+
continue;
|
|
259
|
+
if (entry.retries >= MAX_RETRIES) {
|
|
260
|
+
logger.warn('Max retries exceeded, closing connection', {
|
|
261
|
+
deviceId,
|
|
262
|
+
relaySeq: entry.relaySeq,
|
|
263
|
+
retries: entry.retries,
|
|
264
|
+
});
|
|
265
|
+
killConnection = true;
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
268
|
+
entry.retries += 1;
|
|
269
|
+
entry.sentAt = now;
|
|
270
|
+
try {
|
|
271
|
+
ws.send(entry.payload);
|
|
272
|
+
logger.debug('Retried unacked message', {
|
|
273
|
+
deviceId,
|
|
274
|
+
relaySeq: entry.relaySeq,
|
|
275
|
+
attempt: entry.retries,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
killConnection = true;
|
|
280
|
+
break;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (killConnection) {
|
|
284
|
+
this.removeConnection(deviceId);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
// ── End delivery assurance ──────────────────────────────
|
|
102
289
|
// --- Auth provider helpers ---
|
|
103
290
|
getAuthProvider() {
|
|
104
291
|
if (this.options.authProviders?.size) {
|
|
@@ -145,7 +332,17 @@ export class HeadServer {
|
|
|
145
332
|
}
|
|
146
333
|
onConnection(ws, req) {
|
|
147
334
|
const ip = req?.socket?.remoteAddress ?? req?.headers['x-forwarded-for']?.toString() ?? 'unknown';
|
|
148
|
-
const state = {
|
|
335
|
+
const state = {
|
|
336
|
+
authenticated: false,
|
|
337
|
+
isAlive: true,
|
|
338
|
+
ip,
|
|
339
|
+
relaySeqCounter: 0,
|
|
340
|
+
inFlight: [],
|
|
341
|
+
lastAckedSeq: 0,
|
|
342
|
+
ackSupported: false,
|
|
343
|
+
lastReceivedRelaySeq: 0,
|
|
344
|
+
seenRelaySeqs: new Set(),
|
|
345
|
+
};
|
|
149
346
|
const logger = getLogger();
|
|
150
347
|
this.clients.set(ws, state);
|
|
151
348
|
logger.debug('WebSocket connected', { ip });
|
|
@@ -195,6 +392,13 @@ export class HeadServer {
|
|
|
195
392
|
});
|
|
196
393
|
}
|
|
197
394
|
async onMessage(ws, state, msg) {
|
|
395
|
+
// Process ack field on every incoming message (post or pre-auth, doesn't matter —
|
|
396
|
+
// ack just prunes our outbound buffer for this peer).
|
|
397
|
+
this.processAck(state, msg);
|
|
398
|
+
// Track inbound relaySeq for sending acks back. Duplicates are dropped silently.
|
|
399
|
+
if (this.trackInboundRelaySeq(state, msg)) {
|
|
400
|
+
return;
|
|
401
|
+
}
|
|
198
402
|
// One-shot pairing token request — before auth
|
|
199
403
|
if (msg.type === 'request_pairing_token') {
|
|
200
404
|
await this.handleRequestPairingToken(ws, state, msg);
|
|
@@ -280,9 +484,9 @@ export class HeadServer {
|
|
|
280
484
|
// Read back the full merged preferences
|
|
281
485
|
const fullUser = this.storage.getUser(state.userId);
|
|
282
486
|
const merged = fullUser?.preferences ?? prefs;
|
|
283
|
-
const confirmation =
|
|
284
|
-
// Send confirmation to sender
|
|
285
|
-
|
|
487
|
+
const confirmation = { type: 'preferences_updated', preferences: merged };
|
|
488
|
+
// Send confirmation to sender (tracked — peer should see it)
|
|
489
|
+
this.trackedSend(ws, state, confirmation);
|
|
286
490
|
// Broadcast to all other devices of the same user
|
|
287
491
|
const userDevices = (() => {
|
|
288
492
|
try {
|
|
@@ -296,12 +500,12 @@ export class HeadServer {
|
|
|
296
500
|
if (d.id === state.deviceId)
|
|
297
501
|
continue;
|
|
298
502
|
const other = this.connections.get(d.id);
|
|
299
|
-
if (other
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
503
|
+
if (!other || other.readyState !== WebSocket.OPEN)
|
|
504
|
+
continue;
|
|
505
|
+
const otherState = this.clients.get(other);
|
|
506
|
+
if (!otherState)
|
|
507
|
+
continue;
|
|
508
|
+
this.trackedSend(other, otherState, confirmation);
|
|
305
509
|
}
|
|
306
510
|
}
|
|
307
511
|
}
|
|
@@ -320,7 +524,11 @@ export class HeadServer {
|
|
|
320
524
|
return;
|
|
321
525
|
}
|
|
322
526
|
if (msg.type === 'ping') {
|
|
323
|
-
|
|
527
|
+
const pongMsg = { type: 'pong' };
|
|
528
|
+
if (state.lastReceivedRelaySeq > 0) {
|
|
529
|
+
pongMsg.ack = state.lastReceivedRelaySeq;
|
|
530
|
+
}
|
|
531
|
+
ws.send(JSON.stringify(pongMsg));
|
|
324
532
|
return;
|
|
325
533
|
}
|
|
326
534
|
if (msg.type === 'pong') {
|
|
@@ -344,20 +552,19 @@ export class HeadServer {
|
|
|
344
552
|
}
|
|
345
553
|
const targetWs = this.connections.get(msg.to);
|
|
346
554
|
if (!targetWs) {
|
|
347
|
-
// Target offline — queue for delivery on reconnect
|
|
348
|
-
|
|
555
|
+
// Target offline — queue for delivery on reconnect.
|
|
556
|
+
// Strip per-hop tracking fields before persisting so the queued payload
|
|
557
|
+
// doesn't carry stale relaySeq/ack from this sender→head hop.
|
|
558
|
+
const { relaySeq: _s, ack: _a, ...clean } = msg;
|
|
559
|
+
this.storage.insertPending(msg.to, senderUserId, JSON.stringify(clean));
|
|
349
560
|
logger.debug('Unicast queued for offline device', { from: state.deviceId, to: msg.to });
|
|
350
561
|
return;
|
|
351
562
|
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
catch {
|
|
358
|
-
logger.warn('Unicast send failed, removing connection', { to: msg.to });
|
|
359
|
-
this.removeConnection(msg.to);
|
|
360
|
-
}
|
|
563
|
+
const targetState = this.clients.get(targetWs);
|
|
564
|
+
if (!targetState)
|
|
565
|
+
return;
|
|
566
|
+
// Forward via tracked path so we retry if the recipient doesn't ack.
|
|
567
|
+
this.trackedSend(targetWs, targetState, msg);
|
|
361
568
|
}
|
|
362
569
|
handleBroadcast(state, msg) {
|
|
363
570
|
const logger = getLogger();
|
|
@@ -375,15 +582,10 @@ export class HeadServer {
|
|
|
375
582
|
if (!targetWs)
|
|
376
583
|
continue;
|
|
377
584
|
onlineDeviceIds.push(device.id);
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
}
|
|
383
|
-
catch {
|
|
384
|
-
logger.warn('Broadcast send failed, removing connection', { to: device.id });
|
|
385
|
-
this.removeConnection(device.id);
|
|
386
|
-
}
|
|
585
|
+
const targetState = this.clients.get(targetWs);
|
|
586
|
+
if (!targetState)
|
|
587
|
+
continue;
|
|
588
|
+
this.trackedSend(targetWs, targetState, msg);
|
|
387
589
|
}
|
|
388
590
|
// Send push notifications to offline devices with registered tokens
|
|
389
591
|
if (msg.pushPreview && this.options.pushManager) {
|
|
@@ -393,6 +595,7 @@ export class HeadServer {
|
|
|
393
595
|
}
|
|
394
596
|
removeConnection(deviceId) {
|
|
395
597
|
const ws = this.connections.get(deviceId);
|
|
598
|
+
const userId = this.userByDevice.get(deviceId);
|
|
396
599
|
this.connections.delete(deviceId);
|
|
397
600
|
this.userByDevice.delete(deviceId);
|
|
398
601
|
if (ws) {
|
|
@@ -401,6 +604,17 @@ export class HeadServer {
|
|
|
401
604
|
}
|
|
402
605
|
catch { /* best effort */ }
|
|
403
606
|
}
|
|
607
|
+
// Programmatic removal — the ws.on('close') handler's reconnect-guard
|
|
608
|
+
// check will fail (we already deleted from the map), so notify other
|
|
609
|
+
// devices ourselves. Idempotent: if the close handler does run later it
|
|
610
|
+
// sees the map empty and skips.
|
|
611
|
+
if (userId) {
|
|
612
|
+
try {
|
|
613
|
+
this.storage.touchDeviceLastSeen(deviceId);
|
|
614
|
+
}
|
|
615
|
+
catch { /* storage may be closed */ }
|
|
616
|
+
this.broadcastDeviceLeft(userId, deviceId);
|
|
617
|
+
}
|
|
404
618
|
}
|
|
405
619
|
sendAuthError(ws, code, message, redirect, deviceId) {
|
|
406
620
|
if (ws.readyState === WebSocket.OPEN) {
|
|
@@ -853,7 +1067,6 @@ export class HeadServer {
|
|
|
853
1067
|
logger.info('Push token unregistered', { deviceId: state.deviceId, provider: payload.provider });
|
|
854
1068
|
}
|
|
855
1069
|
broadcastDeviceRemoved(userId, removedDeviceId) {
|
|
856
|
-
const msg = JSON.stringify({ type: 'device_removed', deviceId: removedDeviceId });
|
|
857
1070
|
let userDevices;
|
|
858
1071
|
try {
|
|
859
1072
|
userDevices = this.storage.getDevicesByUser(userId);
|
|
@@ -863,12 +1076,12 @@ export class HeadServer {
|
|
|
863
1076
|
}
|
|
864
1077
|
for (const d of userDevices) {
|
|
865
1078
|
const ws = this.connections.get(d.id);
|
|
866
|
-
if (ws
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
}
|
|
1079
|
+
if (!ws || ws.readyState !== WebSocket.OPEN)
|
|
1080
|
+
continue;
|
|
1081
|
+
const targetState = this.clients.get(ws);
|
|
1082
|
+
if (!targetState)
|
|
1083
|
+
continue;
|
|
1084
|
+
this.trackedSend(ws, targetState, { type: 'device_removed', deviceId: removedDeviceId });
|
|
872
1085
|
}
|
|
873
1086
|
}
|
|
874
1087
|
broadcastDeviceJoined(userId, newDeviceId) {
|
|
@@ -892,7 +1105,6 @@ export class HeadServer {
|
|
|
892
1105
|
lastSeen: device.lastSeen,
|
|
893
1106
|
createdAt: device.createdAt,
|
|
894
1107
|
};
|
|
895
|
-
const msg = JSON.stringify({ type: 'device_joined', device: summary });
|
|
896
1108
|
let userDevices;
|
|
897
1109
|
try {
|
|
898
1110
|
userDevices = this.storage.getDevicesByUser(userId);
|
|
@@ -904,16 +1116,15 @@ export class HeadServer {
|
|
|
904
1116
|
if (d.id === newDeviceId)
|
|
905
1117
|
continue;
|
|
906
1118
|
const ws = this.connections.get(d.id);
|
|
907
|
-
if (ws
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
}
|
|
1119
|
+
if (!ws || ws.readyState !== WebSocket.OPEN)
|
|
1120
|
+
continue;
|
|
1121
|
+
const targetState = this.clients.get(ws);
|
|
1122
|
+
if (!targetState)
|
|
1123
|
+
continue;
|
|
1124
|
+
this.trackedSend(ws, targetState, { type: 'device_joined', device: summary });
|
|
913
1125
|
}
|
|
914
1126
|
}
|
|
915
1127
|
broadcastDeviceLeft(userId, leftDeviceId) {
|
|
916
|
-
const msg = JSON.stringify({ type: 'device_left', deviceId: leftDeviceId });
|
|
917
1128
|
let userDevices;
|
|
918
1129
|
try {
|
|
919
1130
|
userDevices = this.storage.getDevicesByUser(userId);
|
|
@@ -925,12 +1136,12 @@ export class HeadServer {
|
|
|
925
1136
|
if (d.id === leftDeviceId)
|
|
926
1137
|
continue;
|
|
927
1138
|
const ws = this.connections.get(d.id);
|
|
928
|
-
if (ws
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
}
|
|
1139
|
+
if (!ws || ws.readyState !== WebSocket.OPEN)
|
|
1140
|
+
continue;
|
|
1141
|
+
const targetState = this.clients.get(ws);
|
|
1142
|
+
if (!targetState)
|
|
1143
|
+
continue;
|
|
1144
|
+
this.trackedSend(ws, targetState, { type: 'device_left', deviceId: leftDeviceId });
|
|
934
1145
|
}
|
|
935
1146
|
}
|
|
936
1147
|
// --- Helpers ---
|
|
@@ -1026,11 +1237,35 @@ export class HeadServer {
|
|
|
1026
1237
|
registeredUsers,
|
|
1027
1238
|
};
|
|
1028
1239
|
}
|
|
1240
|
+
/** Test hook: inspect delivery state for an online device. Not used in prod. */
|
|
1241
|
+
getDeliveryState(deviceId) {
|
|
1242
|
+
const ws = this.connections.get(deviceId);
|
|
1243
|
+
if (!ws)
|
|
1244
|
+
return undefined;
|
|
1245
|
+
const state = this.clients.get(ws);
|
|
1246
|
+
if (!state)
|
|
1247
|
+
return undefined;
|
|
1248
|
+
return {
|
|
1249
|
+
inFlightCount: state.inFlight.length,
|
|
1250
|
+
relaySeqCounter: state.relaySeqCounter,
|
|
1251
|
+
lastAckedSeq: state.lastAckedSeq,
|
|
1252
|
+
ackSupported: state.ackSupported,
|
|
1253
|
+
lastReceivedRelaySeq: state.lastReceivedRelaySeq,
|
|
1254
|
+
};
|
|
1255
|
+
}
|
|
1256
|
+
/** Test hook: force a retry pass without waiting for the timer. */
|
|
1257
|
+
forceRetryPass() {
|
|
1258
|
+
this.runRetryPass();
|
|
1259
|
+
}
|
|
1029
1260
|
close() {
|
|
1030
1261
|
if (this.pingTimer) {
|
|
1031
1262
|
clearInterval(this.pingTimer);
|
|
1032
1263
|
this.pingTimer = null;
|
|
1033
1264
|
}
|
|
1265
|
+
if (this.retryTimer) {
|
|
1266
|
+
clearInterval(this.retryTimer);
|
|
1267
|
+
this.retryTimer = null;
|
|
1268
|
+
}
|
|
1034
1269
|
for (const ws of this.clients.keys()) {
|
|
1035
1270
|
ws.close();
|
|
1036
1271
|
}
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kraki/head",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Kraki relay server — the brain that routes messages between tentacles and apps",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"uuid": "^13.0.0",
|
|
30
30
|
"web-push": "^3.6.7",
|
|
31
31
|
"ws": "^8.19.0",
|
|
32
|
-
"@kraki/protocol": "0.
|
|
32
|
+
"@kraki/protocol": "0.12.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/better-sqlite3": "^7.6.0",
|