borgmcp 0.9.39 → 0.9.41
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/log-stream.d.ts +29 -1
- package/dist/log-stream.d.ts.map +1 -1
- package/dist/log-stream.js +152 -62
- package/dist/log-stream.js.map +1 -1
- package/package.json +1 -1
package/dist/log-stream.d.ts
CHANGED
|
@@ -53,6 +53,9 @@ export declare function getStreamStatus(): StreamStatus & {
|
|
|
53
53
|
* lifetime in normal operation. Tests asserting on the new
|
|
54
54
|
* content-vs-wire field semantics need a clean slate between
|
|
55
55
|
* scenarios; nothing in production code should call this.
|
|
56
|
+
*
|
|
57
|
+
* @internal — test-only surface; not part of the public client API. The
|
|
58
|
+
* `__`-prefix + `ForTest` suffix mark it as such at every call site.
|
|
56
59
|
*/
|
|
57
60
|
export declare function __resetStreamStateForTest(): void;
|
|
58
61
|
/**
|
|
@@ -70,7 +73,7 @@ export interface StreamDeps {
|
|
|
70
73
|
/** Override the inbox-line append (tests assert against the calls). */
|
|
71
74
|
appendLine?: (cubeId: string, droneId: string, line: string) => Promise<void>;
|
|
72
75
|
/** Override durable inbox-entry dedup (tests avoid real filesystem). */
|
|
73
|
-
hasInboxEntryId?: (cubeId: string, droneId: string, entryId: string) => Promise<boolean>;
|
|
76
|
+
hasInboxEntryId?: (cubeId: string, droneId: string, entryId: string, renderedLine: string) => Promise<boolean>;
|
|
74
77
|
/** Override the auth-token fetch (tests skip the OS keychain). */
|
|
75
78
|
getToken?: () => Promise<string>;
|
|
76
79
|
/** Optional Codex app-server wake sink; tests inject a spy. */
|
|
@@ -124,6 +127,7 @@ export interface EnrichedEntry {
|
|
|
124
127
|
role_name?: string | null;
|
|
125
128
|
message?: string;
|
|
126
129
|
}
|
|
130
|
+
export declare function compareBroadcastHwm(a: BroadcastHwm, b: BroadcastHwm): number;
|
|
127
131
|
/**
|
|
128
132
|
* Format one inbox-file line. Preserves the long-poll inbox.ts prefix
|
|
129
133
|
* shape (`<iso-ts> <drone-label> (<role-name>): ...`) so existing
|
|
@@ -140,4 +144,28 @@ export interface EnrichedEntry {
|
|
|
140
144
|
* "newline was here" — convention noted in the regen-format playbook.
|
|
141
145
|
*/
|
|
142
146
|
export declare function formatInboxLine(entry: EnrichedEntry): string;
|
|
147
|
+
/**
|
|
148
|
+
* @internal Exported for unit tests.
|
|
149
|
+
*
|
|
150
|
+
* Decide whether `raw` (the full inbox-file contents) already contains the
|
|
151
|
+
* entry identified by `entryId` / rendered as `renderedLine`. Robust to BOTH
|
|
152
|
+
* on-disk line formats (gh#441 — catchup-replay-flood fix):
|
|
153
|
+
* - NEW format (0.9.39+): `…: [entry_id: <id>] <message>` — matched by the
|
|
154
|
+
* `[entry_id: <id>]` marker (the #412 dedup, preserved verbatim).
|
|
155
|
+
* - LEGACY format (pre-0.9.39 / old ACK lines): `…: <message>` with NO
|
|
156
|
+
* entry_id prefix — matched by an EXACT, line-anchored comparison against
|
|
157
|
+
* the entry's legacy rendering (`renderedLine` with the id-prefix stripped).
|
|
158
|
+
*
|
|
159
|
+
* Why this exists: a worker DEPLOY evicts the LogBroadcaster DO → every drone's
|
|
160
|
+
* SSE drops → fleet-wide simultaneous reconnect → catchup. The old substring
|
|
161
|
+
* check (`raw.includes('[entry_id: <id>]')`) missed legacy lines, so catchup
|
|
162
|
+
* re-appended them → tail -F replay flood.
|
|
163
|
+
*
|
|
164
|
+
* The legacy match is LINE-ANCHORED (exact line equality), NOT a substring
|
|
165
|
+
* match, on purpose: a substring match would false-positive-DROP a genuinely
|
|
166
|
+
* new entry whose message merely EXTENDS an existing line (e.g. `…: hello` vs
|
|
167
|
+
* `…: hello world`). A dropped entry is worse than a re-append — the drone
|
|
168
|
+
* misses a wake — so when in doubt this fails toward re-append, never drop.
|
|
169
|
+
*/
|
|
170
|
+
export declare function inboxRawHasEntry(raw: string, entryId: string, renderedLine: string): boolean;
|
|
143
171
|
//# sourceMappingURL=log-stream.d.ts.map
|
package/dist/log-stream.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-stream.d.ts","sourceRoot":"","sources":["../src/log-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAOH,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,mBAAmB,CAAC;AAyB3B,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,CAAC;AAE5F,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAeD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,GAAE,MAAoC,GAAG,aAAa,CAKxH;AAED,wBAAgB,eAAe,IAAI,YAAY,GAAG;IAAE,aAAa,EAAE,aAAa,CAAA;CAAE,CAEjF;AAED
|
|
1
|
+
{"version":3,"file":"log-stream.d.ts","sourceRoot":"","sources":["../src/log-stream.ts"],"names":[],"mappings":"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"}
|
package/dist/log-stream.js
CHANGED
|
@@ -79,6 +79,9 @@ export function getStreamStatus() {
|
|
|
79
79
|
* lifetime in normal operation. Tests asserting on the new
|
|
80
80
|
* content-vs-wire field semantics need a clean slate between
|
|
81
81
|
* scenarios; nothing in production code should call this.
|
|
82
|
+
*
|
|
83
|
+
* @internal — test-only surface; not part of the public client API. The
|
|
84
|
+
* `__`-prefix + `ForTest` suffix mark it as such at every call site.
|
|
82
85
|
*/
|
|
83
86
|
export function __resetStreamStateForTest() {
|
|
84
87
|
streamState.connected = false;
|
|
@@ -280,7 +283,34 @@ export async function streamOnce(active, lastEventId, onEventId, deps = {}) {
|
|
|
280
283
|
clearTimeout(pendingHwmDivergence.timer);
|
|
281
284
|
pendingHwmDivergence = null;
|
|
282
285
|
};
|
|
283
|
-
|
|
286
|
+
// gh#402 replay-storm amplifier fix (c80b1aaa #1): advance the resume cursor
|
|
287
|
+
// MONOTONICALLY by (created_at, id). An out-of-order older broadcast (or a
|
|
288
|
+
// catchup replay of an older entry) must NOT regress lastPersistedEventId —
|
|
289
|
+
// a regressed resume cursor widens the next reconnect's catchup window and
|
|
290
|
+
// re-replays entries (the tail -F storm). Reuses compareBroadcastHwm
|
|
291
|
+
// ((created_at,id) tiebreak), the SAME key the server orders broadcasts by.
|
|
292
|
+
//
|
|
293
|
+
// FAIL-OPEN on a missing created_at: every real SSE payload carries a
|
|
294
|
+
// non-empty created_at (EnrichedEntry / ack / heartbeat-hwm all guarantee
|
|
295
|
+
// it server-side), so the guard engages for every production event. But an
|
|
296
|
+
// absent/empty created_at is NOT ordinally comparable (UUID ids aren't
|
|
297
|
+
// either — see the dedup branch), so we only BLOCK a regression we can
|
|
298
|
+
// PROVE: both the incoming entry and the current cursor carry a real
|
|
299
|
+
// created_at AND the incoming is older-or-equal. Otherwise ADVANCE —
|
|
300
|
+
// freezing the resume cursor on a fresh forward entry that happens to lack
|
|
301
|
+
// a created_at would itself widen the next reconnect's window (the very
|
|
302
|
+
// storm this fixes). Proven older-or-equal events are still recorded in
|
|
303
|
+
// recentIds for dedup but do not move the cursor or re-fire onEventId.
|
|
304
|
+
let lastPersistedHwm = null;
|
|
305
|
+
const markEventPersisted = (id, createdAt) => {
|
|
306
|
+
const next = { id, created_at: createdAt };
|
|
307
|
+
if (lastPersistedHwm &&
|
|
308
|
+
createdAt &&
|
|
309
|
+
lastPersistedHwm.created_at &&
|
|
310
|
+
compareBroadcastHwm(next, lastPersistedHwm) <= 0) {
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
lastPersistedHwm = next;
|
|
284
314
|
lastPersistedEventId = id;
|
|
285
315
|
streamState.lastPersistedEventId = id;
|
|
286
316
|
onEventId(id);
|
|
@@ -320,6 +350,52 @@ export async function streamOnce(active, lastEventId, onEventId, deps = {}) {
|
|
|
320
350
|
const recentIds = new Set();
|
|
321
351
|
const recentIdsOrder = [];
|
|
322
352
|
let isCatchingUp = lastEventId !== null;
|
|
353
|
+
// gh#29 quality-stream (#5): shared inbox-write + cursor-advance helpers,
|
|
354
|
+
// extracted from the previously-duplicated ack / regular-log branches in the
|
|
355
|
+
// event loop below. Behavior-preserving — the per-branch comments document
|
|
356
|
+
// the load-bearing semantics each path relies on.
|
|
357
|
+
// Format + (catchup-dedup-aware) append the entry's inbox line.
|
|
358
|
+
// LOAD-BEARING ORDER: the disk write must complete before the cursor
|
|
359
|
+
// advances (recordSeen), so an append failure (disk full, EACCES, path race
|
|
360
|
+
// during cube switch) replays the entry on reconnect rather than being
|
|
361
|
+
// skipped past by an already-advanced Last-Event-ID — the §(3) durability
|
|
362
|
+
// contract. Returns 'persisted-skip' when the entry is already on disk from
|
|
363
|
+
// an earlier catchup receive (caller advances the cursor via markEventPersisted
|
|
364
|
+
// here, then continues WITHOUT re-recording); 'written' after a fresh append.
|
|
365
|
+
const writeInboxLine = async (ev) => {
|
|
366
|
+
const line = formatInboxLine(withSseEventId(ev.data, ev.id));
|
|
367
|
+
if (isCatchingUp &&
|
|
368
|
+
// gh#441: pass the rendered line so the dedup can also recognize LEGACY
|
|
369
|
+
// (no-entry_id-prefix) on-disk lines, not just the [entry_id:] marker.
|
|
370
|
+
(await hasInboxEntryId(active.cubeId, active.droneId, ev.id, line))) {
|
|
371
|
+
markEventPersisted(ev.id, ev.data?.created_at ?? '');
|
|
372
|
+
return 'persisted-skip';
|
|
373
|
+
}
|
|
374
|
+
await appendLine(active.cubeId, active.droneId, line);
|
|
375
|
+
wakeCodex(formatCodexWakePrompt(line));
|
|
376
|
+
return 'written';
|
|
377
|
+
};
|
|
378
|
+
// Record the event in the bounded recent-ids dedup set (FIFO-capped) and
|
|
379
|
+
// advance both cursors. The broadcast-HWM cursor advances via
|
|
380
|
+
// broadcastHwmFromLogEvent, which returns null for visibility==='direct' and
|
|
381
|
+
// kind==='ack' (those do NOT advance the server's DO broadcast HWM either —
|
|
382
|
+
// D6), so it advances ONLY for broadcast entries. gh#402 replay-storm fix
|
|
383
|
+
// (583aed7e): this runs for OWN-POST broadcasts too — the author's own
|
|
384
|
+
// broadcast IS counted by the server HWM, so the client broadcast cursor
|
|
385
|
+
// must advance to match; otherwise the next heartbeat reads server-hwm >
|
|
386
|
+
// client-cursor and fires a spurious divergence-reconnect (the storm
|
|
387
|
+
// trigger). The null-for-direct/ack guard keeps own-direct echoes correct.
|
|
388
|
+
const recordSeen = (ev) => {
|
|
389
|
+
recentIds.add(ev.id);
|
|
390
|
+
recentIdsOrder.push(ev.id);
|
|
391
|
+
while (recentIdsOrder.length > RECENT_IDS_CAP) {
|
|
392
|
+
const oldId = recentIdsOrder.shift();
|
|
393
|
+
if (oldId)
|
|
394
|
+
recentIds.delete(oldId);
|
|
395
|
+
}
|
|
396
|
+
markEventPersisted(ev.id, ev.data?.created_at ?? '');
|
|
397
|
+
markBroadcastPersisted(broadcastHwmFromLogEvent(ev));
|
|
398
|
+
};
|
|
323
399
|
let response;
|
|
324
400
|
try {
|
|
325
401
|
response = await fetchImpl(`${active.apiUrl}/api/drone/stream`, {
|
|
@@ -360,7 +436,7 @@ export async function streamOnce(active, lastEventId, onEventId, deps = {}) {
|
|
|
360
436
|
if (event.hwm && lastBroadcastHwm === null) {
|
|
361
437
|
markBroadcastPersisted(event.hwm);
|
|
362
438
|
if (lastPersistedEventId === null) {
|
|
363
|
-
markEventPersisted(event.hwm.id);
|
|
439
|
+
markEventPersisted(event.hwm.id, event.hwm.created_at);
|
|
364
440
|
}
|
|
365
441
|
continue;
|
|
366
442
|
}
|
|
@@ -397,7 +473,7 @@ export async function streamOnce(active, lastEventId, onEventId, deps = {}) {
|
|
|
397
473
|
// id we've actually got persisted). UUIDs are not ordinally
|
|
398
474
|
// comparable with created_at, so set membership is the check.
|
|
399
475
|
if (recentIds.has(event.id)) {
|
|
400
|
-
markEventPersisted(event.id);
|
|
476
|
+
markEventPersisted(event.id, event.data?.created_at ?? '');
|
|
401
477
|
markBroadcastPersisted(broadcastHwmFromLogEvent(event));
|
|
402
478
|
continue;
|
|
403
479
|
}
|
|
@@ -438,62 +514,25 @@ export async function streamOnce(active, lastEventId, onEventId, deps = {}) {
|
|
|
438
514
|
// semantic takes precedence.
|
|
439
515
|
if (event.data?.kind === 'ack') {
|
|
440
516
|
if (event.data?.author_drone_id === active.droneId) {
|
|
441
|
-
|
|
442
|
-
if (isCatchingUp &&
|
|
443
|
-
await hasInboxEntryId(active.cubeId, active.droneId, event.id)) {
|
|
444
|
-
markEventPersisted(event.id);
|
|
517
|
+
if ((await writeInboxLine(event)) === 'persisted-skip')
|
|
445
518
|
continue;
|
|
446
|
-
}
|
|
447
|
-
await appendLine(active.cubeId, active.droneId, line);
|
|
448
|
-
wakeCodex(formatCodexWakePrompt(line));
|
|
449
|
-
}
|
|
450
|
-
// Whether we wrote or not, advance the cursor so reconnect
|
|
451
|
-
// doesn't replay the same ack.
|
|
452
|
-
recentIds.add(event.id);
|
|
453
|
-
recentIdsOrder.push(event.id);
|
|
454
|
-
while (recentIdsOrder.length > RECENT_IDS_CAP) {
|
|
455
|
-
const oldId = recentIdsOrder.shift();
|
|
456
|
-
if (oldId)
|
|
457
|
-
recentIds.delete(oldId);
|
|
458
519
|
}
|
|
459
|
-
|
|
460
|
-
markBroadcastPersisted(broadcastHwmFromLogEvent(event));
|
|
520
|
+
recordSeen(event);
|
|
461
521
|
continue;
|
|
462
522
|
}
|
|
463
523
|
if (event.data?.drone_id === active.droneId && !isHeartbeatPing) {
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
recentIds.delete(oldId);
|
|
470
|
-
}
|
|
471
|
-
markEventPersisted(event.id);
|
|
524
|
+
// Own post: silent-self (no inbox echo — already on disk via
|
|
525
|
+
// appendLog). recordSeen still advances BOTH cursors, including the
|
|
526
|
+
// broadcast cursor for an own broadcast — see recordSeen's gh#402
|
|
527
|
+
// (583aed7e) note for why skipping it here would storm.
|
|
528
|
+
recordSeen(event);
|
|
472
529
|
continue;
|
|
473
530
|
}
|
|
474
|
-
//
|
|
475
|
-
// advance
|
|
476
|
-
|
|
477
|
-
// Reversing this order would lose entries on disk-write failure
|
|
478
|
-
// because Last-Event-ID would have already advanced past them.
|
|
479
|
-
// This is the §(3) durability contract — do not refactor.
|
|
480
|
-
const line = formatInboxLine(withSseEventId(event.data, event.id));
|
|
481
|
-
if (isCatchingUp &&
|
|
482
|
-
await hasInboxEntryId(active.cubeId, active.droneId, event.id)) {
|
|
483
|
-
markEventPersisted(event.id);
|
|
531
|
+
// Regular inbound entry: write the inbox line (catchup-dedup aware),
|
|
532
|
+
// then advance both cursors.
|
|
533
|
+
if ((await writeInboxLine(event)) === 'persisted-skip')
|
|
484
534
|
continue;
|
|
485
|
-
|
|
486
|
-
await appendLine(active.cubeId, active.droneId, line);
|
|
487
|
-
wakeCodex(formatCodexWakePrompt(line));
|
|
488
|
-
recentIds.add(event.id);
|
|
489
|
-
recentIdsOrder.push(event.id);
|
|
490
|
-
while (recentIdsOrder.length > RECENT_IDS_CAP) {
|
|
491
|
-
const oldId = recentIdsOrder.shift();
|
|
492
|
-
if (oldId)
|
|
493
|
-
recentIds.delete(oldId);
|
|
494
|
-
}
|
|
495
|
-
markEventPersisted(event.id);
|
|
496
|
-
markBroadcastPersisted(broadcastHwmFromLogEvent(event));
|
|
535
|
+
recordSeen(event);
|
|
497
536
|
}
|
|
498
537
|
}
|
|
499
538
|
}
|
|
@@ -632,7 +671,13 @@ function parseHeartbeatHwm(value) {
|
|
|
632
671
|
? { id: candidate.id, created_at: candidate.created_at }
|
|
633
672
|
: null;
|
|
634
673
|
}
|
|
635
|
-
|
|
674
|
+
// Cross-bundle duplicate of workers/log-hwm.ts `compareBroadcastHwm` — the two
|
|
675
|
+
// MUST stay in sync on the (created_at, id) tiebreak, else a heartbeat-HWM
|
|
676
|
+
// comparison could diverge between client and server and cause spurious or
|
|
677
|
+
// missed gh#402 divergence-reconnects. Exported so the parity test
|
|
678
|
+
// (workers/__tests__/log-hwm-parity.test.ts) can pin them equal on a shared
|
|
679
|
+
// fixture set. See ISSUE-FOUND fb3986b7.
|
|
680
|
+
export function compareBroadcastHwm(a, b) {
|
|
636
681
|
const aTime = Date.parse(a.created_at);
|
|
637
682
|
const bTime = Date.parse(b.created_at);
|
|
638
683
|
if (Number.isFinite(aTime) && Number.isFinite(bTime) && aTime !== bTime) {
|
|
@@ -659,6 +704,18 @@ function withSseEventId(entry, eventId) {
|
|
|
659
704
|
return entry;
|
|
660
705
|
return { ...entry, id: eventId };
|
|
661
706
|
}
|
|
707
|
+
/**
|
|
708
|
+
* First argument that is a non-empty string, else ''. Used to pick the
|
|
709
|
+
* inbox entry id from the server `id` field, falling back to the legacy
|
|
710
|
+
* `entry_id` field. Flattens what was a nested ternary at the call site.
|
|
711
|
+
*/
|
|
712
|
+
function firstNonEmptyString(...candidates) {
|
|
713
|
+
for (const candidate of candidates) {
|
|
714
|
+
if (typeof candidate === 'string' && candidate.length > 0)
|
|
715
|
+
return candidate;
|
|
716
|
+
}
|
|
717
|
+
return '';
|
|
718
|
+
}
|
|
662
719
|
/**
|
|
663
720
|
* Format one inbox-file line. Preserves the long-poll inbox.ts prefix
|
|
664
721
|
* shape (`<iso-ts> <drone-label> (<role-name>): ...`) so existing
|
|
@@ -681,14 +738,10 @@ export function formatInboxLine(entry) {
|
|
|
681
738
|
const label = entry.drone_label ?? '?';
|
|
682
739
|
const role = entry.role_name ?? '?';
|
|
683
740
|
const rawMessage = typeof entry.message === 'string' ? entry.message : '';
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
: '';
|
|
689
|
-
const idPrefix = entryId
|
|
690
|
-
? `[entry_id: ${entryId}] `
|
|
691
|
-
: '';
|
|
741
|
+
// Server `id`, else legacy `entry_id`, else '' (behavior-identical to the
|
|
742
|
+
// prior nested ternary).
|
|
743
|
+
const entryId = firstNonEmptyString(entry.id, entry.entry_id);
|
|
744
|
+
const idPrefix = entryId ? `[entry_id: ${entryId}] ` : '';
|
|
692
745
|
// Normalize \r\n, \r, and \n all to ` ⏎ ` so the entry fits on one
|
|
693
746
|
// physical line regardless of line-ending convention in the source.
|
|
694
747
|
const message = rawMessage.replace(/\r\n|\r|\n/g, ' ⏎ ');
|
|
@@ -699,7 +752,44 @@ async function defaultAppendLine(cubeId, droneId, line) {
|
|
|
699
752
|
await fs.mkdir(path.dirname(p), { recursive: true });
|
|
700
753
|
await fs.appendFile(p, line + '\n', 'utf-8');
|
|
701
754
|
}
|
|
702
|
-
|
|
755
|
+
/**
|
|
756
|
+
* @internal Exported for unit tests.
|
|
757
|
+
*
|
|
758
|
+
* Decide whether `raw` (the full inbox-file contents) already contains the
|
|
759
|
+
* entry identified by `entryId` / rendered as `renderedLine`. Robust to BOTH
|
|
760
|
+
* on-disk line formats (gh#441 — catchup-replay-flood fix):
|
|
761
|
+
* - NEW format (0.9.39+): `…: [entry_id: <id>] <message>` — matched by the
|
|
762
|
+
* `[entry_id: <id>]` marker (the #412 dedup, preserved verbatim).
|
|
763
|
+
* - LEGACY format (pre-0.9.39 / old ACK lines): `…: <message>` with NO
|
|
764
|
+
* entry_id prefix — matched by an EXACT, line-anchored comparison against
|
|
765
|
+
* the entry's legacy rendering (`renderedLine` with the id-prefix stripped).
|
|
766
|
+
*
|
|
767
|
+
* Why this exists: a worker DEPLOY evicts the LogBroadcaster DO → every drone's
|
|
768
|
+
* SSE drops → fleet-wide simultaneous reconnect → catchup. The old substring
|
|
769
|
+
* check (`raw.includes('[entry_id: <id>]')`) missed legacy lines, so catchup
|
|
770
|
+
* re-appended them → tail -F replay flood.
|
|
771
|
+
*
|
|
772
|
+
* The legacy match is LINE-ANCHORED (exact line equality), NOT a substring
|
|
773
|
+
* match, on purpose: a substring match would false-positive-DROP a genuinely
|
|
774
|
+
* new entry whose message merely EXTENDS an existing line (e.g. `…: hello` vs
|
|
775
|
+
* `…: hello world`). A dropped entry is worse than a re-append — the drone
|
|
776
|
+
* misses a wake — so when in doubt this fails toward re-append, never drop.
|
|
777
|
+
*/
|
|
778
|
+
export function inboxRawHasEntry(raw, entryId, renderedLine) {
|
|
779
|
+
// New-format: entry_id marker (preserves the #412 dedup).
|
|
780
|
+
if (entryId && raw.includes(`[entry_id: ${entryId}]`))
|
|
781
|
+
return true;
|
|
782
|
+
// Legacy-format: exact, line-anchored match against the id-prefix-stripped
|
|
783
|
+
// rendering. `String.prototype.replace` with a string pattern strips only the
|
|
784
|
+
// first (sole) prefix occurrence; entryId is treated literally (not regex).
|
|
785
|
+
const legacyForm = entryId
|
|
786
|
+
? renderedLine.replace(`[entry_id: ${entryId}] `, '')
|
|
787
|
+
: renderedLine;
|
|
788
|
+
if (legacyForm && raw.split(/\r?\n/).includes(legacyForm))
|
|
789
|
+
return true;
|
|
790
|
+
return false;
|
|
791
|
+
}
|
|
792
|
+
async function defaultHasInboxEntryId(cubeId, droneId, entryId, renderedLine) {
|
|
703
793
|
const p = inboxPathForDrone(cubeId, droneId);
|
|
704
794
|
let raw;
|
|
705
795
|
try {
|
|
@@ -710,7 +800,7 @@ async function defaultHasInboxEntryId(cubeId, droneId, entryId) {
|
|
|
710
800
|
return false;
|
|
711
801
|
throw err;
|
|
712
802
|
}
|
|
713
|
-
return raw
|
|
803
|
+
return inboxRawHasEntry(raw, entryId, renderedLine);
|
|
714
804
|
}
|
|
715
805
|
function sleep(ms) {
|
|
716
806
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
package/dist/log-stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-stream.js","sourceRoot":"","sources":["../src/log-stream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"log-stream.js","sourceRoot":"","sources":["../src/log-stream.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "borgmcp",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.41",
|
|
4
4
|
"description": "Coordinate AI coding agents in shared cubes. Works with Claude Code and Codex. Create projects, assign roles, and share a live activity log.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|