@essentialai/cogent-bridge 3.23.7 → 3.23.8

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
@@ -1,3 +1,33 @@
1
+ ## 3.23.8 — 2026-09-06
2
+
3
+ ### A bridge restart no longer replays the channel's history
4
+
5
+ `lastMessageId` lived only in memory, and so did the `seenIds` dedup set. The relay's poll route
6
+ states the consequence: *"If lastMessageId is not provided (first poll), returns all messages."* So
7
+ every restart re-fetched the whole channel. Answered frames are skipped (`response !== null`), but
8
+ **broadcasts and unanswered frames are not** — they were re-injected on every restart.
9
+
10
+ Observed live: minutes after a restart, a machine was running
11
+ `claude --resume … -p "[Cogent Bridge: broadcast from Cogent_Master …]"` for a broadcast sent DAYS
12
+ earlier. A peer independently reported 410 replayed items and one frame arriving three times,
13
+ correlating with **restarts** rather than socket state — which is why the ack-based theory did not
14
+ fit: the relay treats `delivery_ack` purely as a sender notification and does not use it to decide
15
+ redelivery.
16
+
17
+ The cursor is now persisted per `(sessionId, peerId)` and restored on connect. **Persisted rather
18
+ than primed-and-discarded**: priming would also stop the replay but would silently drop messages
19
+ that genuinely arrived while an agent was down. A durable cursor resumes exactly where it left off —
20
+ nothing replayed, nothing lost. Best-effort throughout: an unreadable cursor degrades to exactly the
21
+ old behaviour.
22
+
23
+ `src/watch/index.ts:85` already primed correctly. The bridge never got that treatment — same
24
+ codebase, two clients, one primes.
25
+
26
+ **The gate had to be corrected too.** Its first version passed with the cursor deliberately broken,
27
+ because a healthy WebSocket means the poll fallback never runs. The production replay happened
28
+ precisely *because* the socket was 401-looping. The gate now fronts the relay with an HTTP-only
29
+ proxy that refuses WebSocket upgrades, reproducing that condition instead of the happy path.
30
+
1
31
  ## 3.23.7 — 2026-09-06 (client) + relay 3.14.1
2
32
 
3
33
  ### An agent locked out of its own peerId now recovers itself
@@ -0,0 +1,9 @@
1
+ /** `~/.cogent/poll-cursors/<sessionId>.<peerId>.json` */
2
+ export declare function pollCursorPath(sessionId: string, peerId: string): string;
3
+ /** The last message this peer consumed on this channel, or null when there is no record. */
4
+ export declare function loadPollCursor(sessionId: string, peerId: string): string | null;
5
+ /** Record the last consumed message. Best-effort; a failure only costs a replay next restart. */
6
+ export declare function savePollCursor(sessionId: string, peerId: string, lastMessageId: string): void;
7
+ /** Forget the cursor for this identity. Used when a peer deregisters from a channel for good. */
8
+ export declare function clearPollCursor(sessionId: string, peerId: string): void;
9
+ //# sourceMappingURL=poll-cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll-cursor.d.ts","sourceRoot":"","sources":["../../src/cloud/poll-cursor.ts"],"names":[],"mappings":"AAuCA,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAExE;AAOD,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ/E;AAED,iGAAiG;AACjG,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAY7F;AAED,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAMvE"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * DURABLE POLL CURSOR — a bridge restart must not replay the channel's history.
3
+ *
4
+ * ── THE DEFECT (measured 2026-09-06) ────────────────────────────────────────────────────
5
+ * `lastMessageId` lived ONLY in memory (message-inbox.ts, ws-client.ts), and so did the 1000-id
6
+ * `seenIds` dedup set. The relay's poll route is explicit about the consequence: "If lastMessageId
7
+ * is not provided (first poll), returns all messages."
8
+ *
9
+ * So every bridge restart re-fetched the ENTIRE channel from the beginning. Answered frames are
10
+ * skipped (auto-relay returns on `response !== null`), but broadcasts and unanswered frames are
11
+ * not — they were re-injected on every restart. Observed directly: minutes after a restart this
12
+ * machine was running `claude --resume … -p "[Cogent Bridge: broadcast from Cogent_Master …]"` for
13
+ * a broadcast sent DAYS earlier. A peer independently reported 410 replayed items and one frame
14
+ * arriving three times, correlating with restarts rather than with socket state.
15
+ *
16
+ * `src/watch/index.ts:85` already primes correctly ("seed lastMessageId + seen from the backlog
17
+ * without notifying"). The bridge never got that treatment — same codebase, two clients, one primes.
18
+ *
19
+ * ── WHY PERSIST RATHER THAN PRIME-AND-DISCARD ───────────────────────────────────────────
20
+ * Priming (fetch the backlog, throw it away, start from now) is simpler and would also stop the
21
+ * replay — but it SILENTLY DROPS messages that genuinely arrived while the agent was down, which
22
+ * is the failure mode this codebase treats as worst. A durable cursor resumes exactly where the
23
+ * agent left off: nothing replayed, nothing lost.
24
+ *
25
+ * Keyed on (sessionId, peerId): the cursor is a position in ONE channel's stream for ONE identity.
26
+ * Not cwd — the same checkout can serve different channels over time, and the relay session is what
27
+ * the cursor is actually a position in.
28
+ *
29
+ * Best-effort throughout. A cursor that cannot be read means "start from the beginning", which is
30
+ * exactly today's behaviour; a cursor that cannot be written means the next restart replays. Either
31
+ * degrades to the status quo and never blocks message flow.
32
+ */
33
+ import fs from "node:fs";
34
+ import os from "node:os";
35
+ import path from "node:path";
36
+ import { logger } from "../logger.js";
37
+ const safe = (s) => String(s).replace(/[^A-Za-z0-9._-]/g, "_");
38
+ /** `~/.cogent/poll-cursors/<sessionId>.<peerId>.json` */
39
+ export function pollCursorPath(sessionId, peerId) {
40
+ return path.join(os.homedir(), ".cogent", "poll-cursors", `${safe(sessionId)}.${safe(peerId)}.json`);
41
+ }
42
+ /** The last message this peer consumed on this channel, or null when there is no record. */
43
+ export function loadPollCursor(sessionId, peerId) {
44
+ if (!sessionId || !peerId)
45
+ return null;
46
+ try {
47
+ const raw = JSON.parse(fs.readFileSync(pollCursorPath(sessionId, peerId), "utf-8"));
48
+ return typeof raw?.lastMessageId === "string" && raw.lastMessageId ? raw.lastMessageId : null;
49
+ }
50
+ catch {
51
+ return null; // absent or corrupt — start from the beginning, i.e. the old behaviour
52
+ }
53
+ }
54
+ /** Record the last consumed message. Best-effort; a failure only costs a replay next restart. */
55
+ export function savePollCursor(sessionId, peerId, lastMessageId) {
56
+ if (!sessionId || !peerId || !lastMessageId)
57
+ return;
58
+ const p = pollCursorPath(sessionId, peerId);
59
+ try {
60
+ fs.mkdirSync(path.dirname(p), { recursive: true });
61
+ fs.writeFileSync(p, JSON.stringify({ lastMessageId, updatedAt: new Date().toISOString() }));
62
+ }
63
+ catch (err) {
64
+ logger.debug(`poll-cursor: could not persist (${err.message})`);
65
+ }
66
+ }
67
+ /** Forget the cursor for this identity. Used when a peer deregisters from a channel for good. */
68
+ export function clearPollCursor(sessionId, peerId) {
69
+ try {
70
+ fs.unlinkSync(pollCursorPath(sessionId, peerId));
71
+ }
72
+ catch {
73
+ /* never existed, or already gone */
74
+ }
75
+ }
76
+ //# sourceMappingURL=poll-cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll-cursor.js","sourceRoot":"","sources":["../../src/cloud/poll-cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AAE/E,yDAAyD;AACzD,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,MAAc;IAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvG,CAAC;AAOD,4FAA4F;AAC5F,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,MAAc;IAC9D,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAe,CAAC;QAClG,OAAO,OAAO,GAAG,EAAE,aAAa,KAAK,QAAQ,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAChG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,uEAAuE;IACtF,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,MAAc,EAAE,aAAqB;IACrF,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa;QAAE,OAAO;IACpD,MAAM,CAAC,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,EAAE,CAAC,aAAa,CACd,CAAC,EACD,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAuB,CAAC,CAC5F,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,mCAAoC,GAAa,CAAC,OAAO,GAAG,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,MAAc;IAC/D,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;AACH,CAAC"}
@@ -68,6 +68,21 @@ export declare class CloudWsClient {
68
68
  private pollTimer;
69
69
  private pingTimer;
70
70
  private lastMessageId;
71
+ /**
72
+ * Advance the poll cursor AND persist it.
73
+ *
74
+ * Every assignment must go through here. `lastMessageId` was in-memory only, so a restart sent
75
+ * no cursor and the relay replayed the whole channel ("If lastMessageId is not provided (first
76
+ * poll), returns all messages") — re-injecting days-old broadcasts on every restart.
77
+ */
78
+ private advanceCursor;
79
+ /**
80
+ * Seed the cursor from disk when this process has not consumed anything yet.
81
+ *
82
+ * Only ever fills a NULL cursor: a live in-memory position is always newer than the stored one,
83
+ * so it must never be overwritten by a restore.
84
+ */
85
+ private restoreCursor;
71
86
  private lastWsError;
72
87
  private connectionGeneration;
73
88
  private opts;
@@ -1 +1 @@
1
- {"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../../src/cloud/ws-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../../src/cloud/ws-client.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import WebSocket from "ws";
2
2
  import { ExponentialBackoff } from "./backoff.js";
3
3
  import { WsCloseCode } from "./ws-frames.js";
4
4
  import { logger } from "../logger.js";
5
+ import { loadPollCursor, savePollCursor } from "./poll-cursor.js";
5
6
  /**
6
7
  * WebSocket client with reconnection logic and poll fallback.
7
8
  *
@@ -21,6 +22,35 @@ export class CloudWsClient {
21
22
  pollTimer = null;
22
23
  pingTimer = null;
23
24
  lastMessageId = null;
25
+ /**
26
+ * Advance the poll cursor AND persist it.
27
+ *
28
+ * Every assignment must go through here. `lastMessageId` was in-memory only, so a restart sent
29
+ * no cursor and the relay replayed the whole channel ("If lastMessageId is not provided (first
30
+ * poll), returns all messages") — re-injecting days-old broadcasts on every restart.
31
+ */
32
+ advanceCursor(id) {
33
+ if (!id)
34
+ return;
35
+ this.lastMessageId = id;
36
+ savePollCursor(this.opts.sessionId, this.opts.peerId, id);
37
+ }
38
+ /**
39
+ * Seed the cursor from disk when this process has not consumed anything yet.
40
+ *
41
+ * Only ever fills a NULL cursor: a live in-memory position is always newer than the stored one,
42
+ * so it must never be overwritten by a restore.
43
+ */
44
+ restoreCursor() {
45
+ if (this.lastMessageId)
46
+ return;
47
+ const stored = loadPollCursor(this.opts.sessionId, this.opts.peerId);
48
+ if (stored) {
49
+ this.lastMessageId = stored;
50
+ logger.info(`CloudWsClient: resuming from stored poll cursor (${stored.slice(0, 8)}…) — the channel ` +
51
+ `backlog before it has already been consumed and will not be replayed.`);
52
+ }
53
+ }
24
54
  lastWsError = null;
25
55
  connectionGeneration = 0;
26
56
  opts;
@@ -43,6 +73,7 @@ export class CloudWsClient {
43
73
  * Guards against empty peerId -- call setPeerId() first.
44
74
  */
45
75
  connect() {
76
+ this.restoreCursor();
46
77
  if (!this.opts.peerId) {
47
78
  logger.warn("CloudWsClient: Cannot connect WebSocket without peerId. Call setPeerId() first.");
48
79
  return;
@@ -238,7 +269,7 @@ export class CloudWsClient {
238
269
  * Update the last seen message ID (e.g., from HttpBackend operations).
239
270
  */
240
271
  updateLastMessageId(id) {
241
- this.lastMessageId = id;
272
+ this.advanceCursor(id);
242
273
  }
243
274
  /**
244
275
  * Update the auth token for reconnection.
@@ -317,13 +348,13 @@ export class CloudWsClient {
317
348
  switch (frame.type) {
318
349
  case "message":
319
350
  this.opts.onMessage(frame.payload);
320
- this.lastMessageId = frame.payload.id;
351
+ this.advanceCursor(frame.payload.id);
321
352
  break;
322
353
  case "queued_messages": {
323
354
  const msgs = frame.payload.messages;
324
355
  this.opts.onMessages(msgs);
325
356
  if (msgs.length > 0) {
326
- this.lastMessageId = msgs[msgs.length - 1].id;
357
+ this.advanceCursor(msgs[msgs.length - 1].id);
327
358
  }
328
359
  break;
329
360
  }
@@ -354,6 +385,7 @@ export class CloudWsClient {
354
385
  startPolling() {
355
386
  if (this.pollTimer)
356
387
  return;
388
+ this.restoreCursor();
357
389
  const poll = async () => {
358
390
  try {
359
391
  const path = `/api/sessions/${this.opts.sessionId}/poll`;
@@ -366,8 +398,7 @@ export class CloudWsClient {
366
398
  const result = await this.opts.http.get(path, query);
367
399
  if (result.messages && result.messages.length > 0) {
368
400
  this.opts.onMessages(result.messages);
369
- this.lastMessageId =
370
- result.messages[result.messages.length - 1].id;
401
+ this.advanceCursor(result.messages[result.messages.length - 1].id);
371
402
  }
372
403
  }
373
404
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../../src/cloud/ws-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../../src/cloud/ws-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@essentialai/cogent-bridge",
3
- "version": "3.23.7",
3
+ "version": "3.23.8",
4
4
  "description": "Cogent Bridge — cross-agent comms for Claude Code, OpenAI Codex and Slack. Codex users: install with `curl -fsSL https://cogent.tools/install.sh | sh`, then start with `cogent-codex` for real-time peer wake.",
5
5
  "type": "module",
6
6
  "workspaces": [
package/server.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "io.github.eaisdevelopment/cogent",
4
4
  "title": "Cogent Bridge from Essential AI Solutions (essentialai.uk)",
5
5
  "description": "MCP bridge for inter-session communication between Claude Code instances",
6
- "version": "3.23.7",
6
+ "version": "3.23.8",
7
7
  "repository": {
8
8
  "url": "https://github.com/eaisdevelopment/cogent",
9
9
  "source": "github"
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "@essentialai/cogent-bridge",
15
- "version": "3.23.7",
15
+ "version": "3.23.8",
16
16
  "runtimeHint": "npx",
17
17
  "transport": {
18
18
  "type": "stdio"