@cello-protocol/daemon 0.0.214 → 0.0.216
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/attendance-wiring.d.ts +0 -2
- package/dist/attendance-wiring.d.ts.map +1 -1
- package/dist/attendance-wiring.js +2 -6
- package/dist/attendance-wiring.js.map +1 -1
- package/dist/boot-connection-state.d.ts +0 -2
- package/dist/boot-connection-state.d.ts.map +1 -1
- package/dist/boot-connection-state.js +5 -46
- package/dist/boot-connection-state.js.map +1 -1
- package/dist/close-session-handler.d.ts.map +1 -1
- package/dist/close-session-handler.js +34 -9
- package/dist/close-session-handler.js.map +1 -1
- package/dist/co-attendance.d.ts +8 -72
- package/dist/co-attendance.d.ts.map +1 -1
- package/dist/co-attendance.js +8 -116
- package/dist/co-attendance.js.map +1 -1
- package/dist/daemon.js +2 -7
- package/dist/daemon.js.map +1 -1
- package/dist/disconnect-cleanup.d.ts +0 -1
- package/dist/disconnect-cleanup.d.ts.map +1 -1
- package/dist/disconnect-cleanup.js +1 -9
- package/dist/disconnect-cleanup.js.map +1 -1
- package/dist/frame-values.d.ts.map +1 -1
- package/dist/frame-values.js +4 -7
- package/dist/frame-values.js.map +1 -1
- package/dist/reply-lag.d.ts +11 -0
- package/dist/reply-lag.d.ts.map +1 -0
- package/dist/reply-lag.js +46 -0
- package/dist/reply-lag.js.map +1 -0
- package/dist/resume-last-seen.d.ts +15 -0
- package/dist/resume-last-seen.d.ts.map +1 -0
- package/dist/resume-last-seen.js +44 -0
- package/dist/resume-last-seen.js.map +1 -0
- package/dist/seal-coordinator.js +2 -2
- package/dist/seal-coordinator.js.map +1 -1
- package/dist/seal-legibility-tbs.d.ts.map +1 -1
- package/dist/seal-legibility-tbs.js +2 -3
- package/dist/seal-legibility-tbs.js.map +1 -1
- package/dist/sealed-conversation.d.ts +36 -0
- package/dist/sealed-conversation.d.ts.map +1 -0
- package/dist/sealed-conversation.js +142 -0
- package/dist/sealed-conversation.js.map +1 -0
- package/dist/session-content-handlers.d.ts +0 -17
- package/dist/session-content-handlers.d.ts.map +1 -1
- package/dist/session-content-handlers.js +122 -288
- package/dist/session-content-handlers.js.map +1 -1
- package/dist/session-content-ingest.d.ts.map +1 -1
- package/dist/session-content-ingest.js +9 -3
- package/dist/session-content-ingest.js.map +1 -1
- package/dist/session-content-send.js +1 -1
- package/dist/session-content-send.js.map +1 -1
- package/dist/session-delivery-acks.d.ts +15 -41
- package/dist/session-delivery-acks.d.ts.map +1 -1
- package/dist/session-delivery-acks.js +26 -131
- package/dist/session-delivery-acks.js.map +1 -1
- package/dist/session-notify.js +1 -1
- package/dist/session-notify.js.map +1 -1
- package/dist/session-queries.d.ts +1 -1
- package/dist/session-queries.js +1 -1
- package/dist/session-read-handlers.d.ts.map +1 -1
- package/dist/session-read-handlers.js +58 -96
- package/dist/session-read-handlers.js.map +1 -1
- package/dist/session-records.d.ts +4 -0
- package/dist/session-records.d.ts.map +1 -1
- package/dist/session-records.js +34 -1
- package/dist/session-records.js.map +1 -1
- package/dist/session-relay-client.d.ts +2 -0
- package/dist/session-relay-client.d.ts.map +1 -1
- package/dist/session-relay-client.js +15 -14
- package/dist/session-relay-client.js.map +1 -1
- package/dist/session-relay.d.ts.map +1 -1
- package/dist/session-relay.js +3 -2
- package/dist/session-relay.js.map +1 -1
- package/dist/session-schema.d.ts.map +1 -1
- package/dist/session-schema.js +31 -0
- package/dist/session-schema.js.map +1 -1
- package/dist/session-seal-leaf-store.d.ts +10 -0
- package/dist/session-seal-leaf-store.d.ts.map +1 -1
- package/dist/session-seal-leaf-store.js +18 -0
- package/dist/session-seal-leaf-store.js.map +1 -1
- package/dist/session-seal.d.ts.map +1 -1
- package/dist/session-seal.js +46 -11
- package/dist/session-seal.js.map +1 -1
- package/dist/session-terminal-refusal.d.ts +3 -0
- package/dist/session-terminal-refusal.d.ts.map +1 -1
- package/dist/session-terminal-refusal.js +21 -0
- package/dist/session-terminal-refusal.js.map +1 -1
- package/dist/telegram-doorbell.js +1 -1
- package/dist/telegram-doorbell.js.map +1 -1
- package/dist/withheld-content.d.ts +13 -0
- package/dist/withheld-content.d.ts.map +1 -0
- package/dist/withheld-content.js +46 -0
- package/dist/withheld-content.js.map +1 -0
- package/package.json +5 -5
package/dist/co-attendance.js
CHANGED
|
@@ -5,25 +5,15 @@
|
|
|
5
5
|
* not exclusivity — connections die constantly, exclusivity buys no cryptographic property, and it
|
|
6
6
|
* forecloses listener mode). What was missing is not a restriction; it is VISIBILITY.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* HOW MANY sessions attend an agent. `daemon.ts`'s `isAttended()` answers a boolean on first match
|
|
9
|
+
* and deliberately never counts — M8C-AWAY-1's auto-ack suppression hangs off it, so it is left
|
|
10
|
+
* exactly as it is. `countAttendance` is ADDITIVE and shares its one source of truth: the same
|
|
11
|
+
* `currentAgent` map the doorbell routes on. A private second counter could disagree with who
|
|
12
|
+
* actually gets woken; this cannot.
|
|
9
13
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* same `currentAgent` map the doorbell routes on. A private second counter could disagree with
|
|
14
|
-
* who actually gets woken; this cannot.
|
|
15
|
-
*
|
|
16
|
-
* 2. WHICH connection consumed a message. The delivery buffer is keyed `(agentName, sessionId)` and
|
|
17
|
-
* drained with `buf.shift()`, so when two sessions are woken by the same multicast doorbell the
|
|
18
|
-
* faster one REMOVES the message from the other's view. Tier 0 does not fix that (Tier 1's
|
|
19
|
-
* DOD-COATTEND-1 does). It records it, so the session that got nothing can be told the
|
|
20
|
-
* difference between "your counterparty is quiet" and "your sibling took it".
|
|
21
|
-
*
|
|
22
|
-
* WHY HERE AND NOT IN SessionNodeManager. The ledger's subject is connection identity, which is an
|
|
23
|
-
* IPC-layer concept. `SessionNodeManager` is deliberately connection-agnostic — its session caches
|
|
24
|
-
* being keyed by (agent, session) and NOT by connection IS the Tier-1 defect — so teaching it about
|
|
25
|
-
* connections inside the launch-gate slice would start the redesign early. This sits beside the
|
|
26
|
-
* per-connection read cursor, which is the same kind of state for the same reason.
|
|
14
|
+
* The ledger of WHICH connection consumed a message is gone (2026-09-13). `cello_receive` now reads
|
|
15
|
+
* against one bookmark per agent, so "another window read it" is no longer a different state from
|
|
16
|
+
* "it was read" — the message was read by this agent, and `cello_transcript` shows it.
|
|
27
17
|
*/
|
|
28
18
|
/**
|
|
29
19
|
* How many live connections currently attend `agentName`.
|
|
@@ -39,102 +29,4 @@ export function countAttendance(perConnectionState, agentName) {
|
|
|
39
29
|
}
|
|
40
30
|
return attending;
|
|
41
31
|
}
|
|
42
|
-
/**
|
|
43
|
-
* Bounds. A daemon runs for days across many sessions, so an unbounded map is a leak — and a cap
|
|
44
|
-
* that is not stated is a silent truncation. Both numbers are generous relative to the question
|
|
45
|
-
* being asked ("did a sibling take something I have not read?"), which only ever looks at takes
|
|
46
|
-
* above the caller's cursor.
|
|
47
|
-
*/
|
|
48
|
-
const MAX_TAKES_PER_SESSION = 64;
|
|
49
|
-
const MAX_TRACKED_SESSIONS = 512;
|
|
50
|
-
export class ContentTakeLedger {
|
|
51
|
-
/** `(agentName, sessionId)` → recent takes, oldest first. Insertion order doubles as the LRU. */
|
|
52
|
-
#takes = new Map();
|
|
53
|
-
/** Sessions whose per-session cap has discarded at least one take. */
|
|
54
|
-
#truncated = new Set();
|
|
55
|
-
static #key(agentName, sessionId) {
|
|
56
|
-
// NUL cannot appear in either component, so the join is unambiguous.
|
|
57
|
-
return `${agentName}\u0000${sessionId}`;
|
|
58
|
-
}
|
|
59
|
-
/** Record that `connectionId` consumed the leaf at `sequenceNumber`. */
|
|
60
|
-
record(agentName, sessionId, connectionId, sequenceNumber) {
|
|
61
|
-
const key = ContentTakeLedger.#key(agentName, sessionId);
|
|
62
|
-
const existing = this.#takes.get(key);
|
|
63
|
-
const takes = existing ?? [];
|
|
64
|
-
takes.push({ connectionId, sequenceNumber });
|
|
65
|
-
if (takes.length > MAX_TAKES_PER_SESSION) {
|
|
66
|
-
takes.splice(0, takes.length - MAX_TAKES_PER_SESSION);
|
|
67
|
-
this.#truncated.add(key);
|
|
68
|
-
}
|
|
69
|
-
// Re-insert so this session moves to the young end of the eviction order.
|
|
70
|
-
if (existing !== undefined)
|
|
71
|
-
this.#takes.delete(key);
|
|
72
|
-
this.#takes.set(key, takes);
|
|
73
|
-
while (this.#takes.size > MAX_TRACKED_SESSIONS) {
|
|
74
|
-
const oldest = this.#takes.keys().next();
|
|
75
|
-
if (oldest.done === true)
|
|
76
|
-
break;
|
|
77
|
-
this.#takes.delete(oldest.value);
|
|
78
|
-
this.#truncated.delete(oldest.value);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Drop everything `connectionId` took. Called from the daemon's `onDisconnect`, beside
|
|
83
|
-
* `connectionCursors.delete` — this state is connection-scoped for the same reason and must have
|
|
84
|
-
* the same lifetime.
|
|
85
|
-
*
|
|
86
|
-
* WHY IT IS NOT OPTIONAL (review HIGH). A fresh connection presents cursor -1, so without this
|
|
87
|
-
* every take a dead connection ever recorded sits above the bar and reads as a live sibling
|
|
88
|
-
* stealing mail. The `cello` CLI opens a fresh connection PER COMMAND, so that fired on ordinary
|
|
89
|
-
* single-operator use and never cleared — the catch-up dead end in mirror image. Once a
|
|
90
|
-
* connection is gone its takes are history, and history is not "another session took it".
|
|
91
|
-
*
|
|
92
|
-
* Bounded by construction: at most MAX_TRACKED_SESSIONS × MAX_TAKES_PER_SESSION entries.
|
|
93
|
-
*/
|
|
94
|
-
forget(connectionId) {
|
|
95
|
-
for (const [key, takes] of this.#takes) {
|
|
96
|
-
const kept = takes.filter((t) => t.connectionId !== connectionId);
|
|
97
|
-
if (kept.length === takes.length)
|
|
98
|
-
continue;
|
|
99
|
-
if (kept.length === 0) {
|
|
100
|
-
this.#takes.delete(key);
|
|
101
|
-
this.#truncated.delete(key);
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
this.#takes.set(key, kept);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Content another connection consumed that `connectionId` has not read, or `null` when there is
|
|
110
|
-
* none.
|
|
111
|
-
*
|
|
112
|
-
* TWO conditions, and both are load-bearing.
|
|
113
|
-
*
|
|
114
|
-
* 1. The take is above the caller's own read cursor — NOT inside a wall-clock window. A window
|
|
115
|
-
* would have to guess how long ago a theft still counts for, and would miss the ordinary case
|
|
116
|
-
* where the sibling's take lands microseconds before this caller's handler even starts. A
|
|
117
|
-
* cursor is exact: it reports content this connection genuinely has not seen, and it CLEARS by
|
|
118
|
-
* itself once the caller catches up. A discriminator that never clears is one nobody reads.
|
|
119
|
-
*
|
|
120
|
-
* 2. The taking connection is STILL ALIVE — guaranteed by `forget()` on disconnect, which is why
|
|
121
|
-
* that call is not housekeeping. A take by a connection that has since died is history, and
|
|
122
|
-
* reporting history as a live theft is what made this fire on every CLI command.
|
|
123
|
-
*/
|
|
124
|
-
missedBy(agentName, sessionId, connectionId, cursor) {
|
|
125
|
-
const key = ContentTakeLedger.#key(agentName, sessionId);
|
|
126
|
-
const takes = this.#takes.get(key);
|
|
127
|
-
if (takes === undefined)
|
|
128
|
-
return null;
|
|
129
|
-
const missed = takes.filter((t) => t.connectionId !== connectionId && t.sequenceNumber > cursor);
|
|
130
|
-
if (missed.length === 0)
|
|
131
|
-
return null;
|
|
132
|
-
return {
|
|
133
|
-
count: missed.length,
|
|
134
|
-
lastSequence: missed.reduce((max, t) => (t.sequenceNumber > max ? t.sequenceNumber : max), missed[0].sequenceNumber),
|
|
135
|
-
connections: [...new Set(missed.map((t) => t.connectionId))],
|
|
136
|
-
truncated: this.#truncated.has(key),
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
32
|
//# sourceMappingURL=co-attendance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"co-attendance.js","sourceRoot":"","sources":["../src/co-attendance.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"co-attendance.js","sourceRoot":"","sources":["../src/co-attendance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,kBAA4D,EAC5D,SAAiB;IAEjB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS;YAAE,SAAS,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/daemon.js
CHANGED
|
@@ -242,7 +242,7 @@ async function startDaemonHoldingLock(config, singletonLock) {
|
|
|
242
242
|
// create/register/start connect (getAgentSignaling caches per agent).
|
|
243
243
|
// 040-DAEMONROOT unit 7 (phase 3): what the daemon remembers per IPC CONNECTION rather than per
|
|
244
244
|
// agent — the selection, the online sets, and the two read positions → boot-connection-state.ts.
|
|
245
|
-
const { perConnectionState, onlineAgents, explicitlyOfflineAgents, forgetConnection, getConnectionCursor, advanceConnectionCursor, safeCursorAdvance,
|
|
245
|
+
const { perConnectionState, onlineAgents, explicitlyOfflineAgents, forgetConnection, getConnectionCursor, advanceConnectionCursor, safeCursorAdvance, safeWatermarkAdvance, } = startBootConnectionState({ sessionNodeManager });
|
|
246
246
|
/**
|
|
247
247
|
* DOD-M15-AWAYSCOPE-1 — the one answer to "is anyone attending this agent", wired once here.
|
|
248
248
|
*
|
|
@@ -261,7 +261,7 @@ async function startDaemonHoldingLock(config, singletonLock) {
|
|
|
261
261
|
// 040-DAEMONROOT unit 6: attendance and the away reply → attendance-wiring.ts.
|
|
262
262
|
// DOD-M15-AWAYSCOPE-1 took the one-shot rejection out, and with it every seal dependency this
|
|
263
263
|
// wiring used to hold — it can no longer initiate a seal at all, which is the point.
|
|
264
|
-
const { attendanceCount, sendAwayResponse,
|
|
264
|
+
const { attendanceCount, sendAwayResponse, backgroundSeals, awayAckSent } = createAttendanceWiring({ logger, sessionNodeManager, perConnectionState, securityGateway });
|
|
265
265
|
// M8C-TGDOOR-1: the Telegram doorbell (telegram-doorbell.ts). Content-free by construction — the
|
|
266
266
|
// module is never handed message text, so it cannot leak any (DOD-INV-CONTENTFREE), and it has no
|
|
267
267
|
// session-send seam, so nothing from Telegram can enter a CELLO content path (D6).
|
|
@@ -743,12 +743,8 @@ async function startDaemonHoldingLock(config, singletonLock) {
|
|
|
743
743
|
NO_CURRENT_AGENT_RESPONSE,
|
|
744
744
|
getConnectionCursor,
|
|
745
745
|
advanceConnectionCursor,
|
|
746
|
-
safeCursorAdvance,
|
|
747
|
-
getDeliveryBookmark,
|
|
748
|
-
advanceDeliveryBookmark,
|
|
749
746
|
clearTelegramRung,
|
|
750
747
|
attendanceCount,
|
|
751
|
-
contentTakes,
|
|
752
748
|
});
|
|
753
749
|
// cello_check_notifications (notification-handlers.ts): the push-loss reconciler. Notifications are
|
|
754
750
|
// fire-and-forget, so a client that was away can miss one entirely — this is how it finds out, by
|
|
@@ -879,7 +875,6 @@ async function startDaemonHoldingLock(config, singletonLock) {
|
|
|
879
875
|
getConnState: (connectionId) => perConnectionState.get(connectionId),
|
|
880
876
|
countAttendanceFor: (agentName) => countAttendance(perConnectionState, agentName),
|
|
881
877
|
forgetConnection,
|
|
882
|
-
forgetTakeLedger: (connectionId) => contentTakes.forget(connectionId),
|
|
883
878
|
announceAttendance: (agentName, attendance) => sessionNodeManager.announceAttendance(agentName, attendance),
|
|
884
879
|
inboundSessionWaiters,
|
|
885
880
|
// A GETTER, though the dispatcher is a const 82 lines ABOVE — so that moving its construction
|
package/dist/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,6 @@ export interface DisconnectCleanupDeps {
|
|
|
31
31
|
announceAttendance: (agentName: string, attendance: "attended" | "unattended" | "offline") => void;
|
|
32
32
|
/** Releases the three per-connection maps. Lives with the maps, not here. */
|
|
33
33
|
forgetConnection: (connectionId: string) => void;
|
|
34
|
-
forgetTakeLedger: (connectionId: string) => void;
|
|
35
34
|
/** Callers blocked in `cello_await_session` for an agent, so a dying connection releases them. */
|
|
36
35
|
inboundSessionWaiters: Map<string, InboundSessionWaiter[]>;
|
|
37
36
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disconnect-cleanup.d.ts","sourceRoot":"","sources":["../src/disconnect-cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,qGAAqG;IACrG,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACzG,uEAAuE;IACvE,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD;;;;;OAKG;IACH,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,KAAK,IAAI,CAAC;IACnG,6EAA6E;IAC7E,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,
|
|
1
|
+
{"version":3,"file":"disconnect-cleanup.d.ts","sourceRoot":"","sources":["../src/disconnect-cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,qGAAqG;IACrG,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACzG,uEAAuE;IACvE,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD;;;;;OAKG;IACH,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,KAAK,IAAI,CAAC;IACnG,6EAA6E;IAC7E,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,kGAAkG;IAClG,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC3D;;;;;;;;;;;OAWG;IACH,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;CACzD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAwEvE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function wireDisconnectCleanup(deps) {
|
|
2
|
-
const { ipcServer, getConnState, countAttendanceFor, forgetConnection,
|
|
2
|
+
const { ipcServer, getConnState, countAttendanceFor, forgetConnection, announceAttendance, inboundSessionWaiters, getNotificationDispatcher, } = deps;
|
|
3
3
|
// MCP-001: Clean up per-connection state when a connection disconnects
|
|
4
4
|
// MCP-002: Also unregister from notification dispatcher
|
|
5
5
|
ipcServer.onDisconnect((connectionId) => {
|
|
@@ -48,14 +48,6 @@ export function wireDisconnectCleanup(deps) {
|
|
|
48
48
|
if (closing?.currentAgent && countAttendanceFor(closing.currentAgent) === 0) {
|
|
49
49
|
announceAttendance(closing.currentAgent, "unattended");
|
|
50
50
|
}
|
|
51
|
-
// DOD-COATTEND-VISIBLE-1 (review HIGH): the take ledger is connection-scoped for the SAME
|
|
52
|
-
// reason and must die with the connection too. Leaving it behind made every reconnect look
|
|
53
|
-
// like a theft: a fresh connection starts at cursor -1, so every take a now-dead connection
|
|
54
|
-
// ever recorded sits above that bar and was reported as "another session took it" — on the
|
|
55
|
-
// `cello` CLI, which opens a fresh connection per command, that fired on ordinary use, forever,
|
|
56
|
-
// with no live sibling anywhere. A signal that fires on the normal case is not a signal, and
|
|
57
|
-
// this one would have taught the operator to disbelieve the real theft it exists to announce.
|
|
58
|
-
forgetTakeLedger(connectionId);
|
|
59
51
|
getNotificationDispatcher().unregisterConnection(connectionId);
|
|
60
52
|
// Seam 2 (review H2): evict any cello_await_session waiters owned by this connection.
|
|
61
53
|
// Otherwise enqueueInboundSession would hand the next inbound session to a closed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disconnect-cleanup.js","sourceRoot":"","sources":["../src/disconnect-cleanup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"disconnect-cleanup.js","sourceRoot":"","sources":["../src/disconnect-cleanup.ts"],"names":[],"mappings":"AAgDA,MAAM,UAAU,qBAAqB,CAAC,IAA2B;IAC/D,MAAM,EACJ,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EACjF,qBAAqB,EACrB,yBAAyB,GAC1B,GAAG,IAAI,CAAC;IAET,uEAAuE;IACvE,wDAAwD;IACxD,SAAS,CAAC,YAAY,CAAC,CAAC,YAAY,EAAE,EAAE;QACtC;;;;;;;;WAQG;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,OAAO,EAAE,YAAY;YAC1C,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC;QACT,sEAAsE;QACtE,8FAA8F;QAC9F,qDAAqD;QACrD,MAAM,iBAAiB,GAA4B;YACjD,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,SAAS;YAC5C,aAAa,EAAE,OAAO,EAAE,YAAY,IAAI,IAAI;YAC5C,GAAG,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,GAAG,CAAC,cAAc,KAAK,CAAC;gBACtB,CAAC,CAAC;oBACE,MAAM,EACJ,oFAAoF;wBACpF,2EAA2E;iBAC9E;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,4FAA4F;QAC5F,kEAAkE;QAClE,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/B;;;;;;;;;;;WAWG;QACH,IAAI,OAAO,EAAE,YAAY,IAAI,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5E,kBAAkB,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;QACD,yBAAyB,EAAE,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAC/D,sFAAsF;QACtF,kFAAkF;QAClF,qFAAqF;QACrF,8DAA8D;QAC9D,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,qBAAqB,EAAE,CAAC;YACzD,MAAM,SAAS,GAAmB,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,YAAY,KAAK,YAAY;oBAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;oBAChD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;gBACrE,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame-values.d.ts","sourceRoot":"","sources":["../src/frame-values.ts"],"names":[],"mappings":"AAUA,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAKzD;AAQD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"frame-values.d.ts","sourceRoot":"","sources":["../src/frame-values.ts"],"names":[],"mappings":"AAUA,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAKzD;AAQD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAsDrE"}
|
package/dist/frame-values.js
CHANGED
|
@@ -19,8 +19,8 @@ export function frameValueToHex(v) {
|
|
|
19
19
|
// M7-SESSION-004 (AC-005): normalise the wire `legibility` object — CBOR-decoded, so pubkeys
|
|
20
20
|
// arrive as Uint8Array/Buffer — into a JSON-safe certificate with hex-encoded pubkeys. Returns
|
|
21
21
|
// undefined for an absent or structurally-implausible object (pre-M7 frame, or a malformed
|
|
22
|
-
// field), in which case nothing is persisted and the seal still completes. The
|
|
23
|
-
//
|
|
22
|
+
// field), in which case nothing is persisted and the seal still completes. The constants
|
|
23
|
+
// (attests/disclaimer) and the integers/booleans are carried
|
|
24
24
|
// verbatim; only the byte fields are re-encoded. The daemon never invents or alters the
|
|
25
25
|
// certificate's meaning — it is the directory's derivation, surfaced.
|
|
26
26
|
export function normalizeLegibility(raw) {
|
|
@@ -33,10 +33,8 @@ export function normalizeLegibility(raw) {
|
|
|
33
33
|
const finalRaw = o["final_message"];
|
|
34
34
|
if (!Array.isArray(participantsRaw) || !finalRaw || typeof finalRaw !== "object")
|
|
35
35
|
return undefined;
|
|
36
|
-
// Review finding (low): the disclaimer
|
|
37
|
-
//
|
|
38
|
-
// rather than surfacing an empty disclaimer (implies_assent:false alone is the machine-readable
|
|
39
|
-
// half, but we do not surface a half-formed certificate).
|
|
36
|
+
// Review finding (low): the disclaimer states what the certificate attests; a non-string value
|
|
37
|
+
// means a malformed/tampered frame, so REJECT the whole cert rather than surface a half-formed one.
|
|
40
38
|
if (typeof o["disclaimer"] !== "string" || o["disclaimer"].length === 0)
|
|
41
39
|
return undefined;
|
|
42
40
|
// Review finding (low): validate attestation_mode against the closed enum — never surface an
|
|
@@ -64,7 +62,6 @@ export function normalizeLegibility(raw) {
|
|
|
64
62
|
};
|
|
65
63
|
return {
|
|
66
64
|
attests: "receipt",
|
|
67
|
-
implies_assent: false,
|
|
68
65
|
disclaimer: o["disclaimer"],
|
|
69
66
|
participants,
|
|
70
67
|
final_message,
|
package/dist/frame-values.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame-values.js","sourceRoot":"","sources":["../src/frame-values.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,uFAAuF;AACvF,oFAAoF;AACpF,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,CAAU;IACxC,IAAI,CAAC,YAAY,UAAU;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,OAAO,IAAI,CAAC;AACd,CAAC;AACD,6FAA6F;AAC7F,+FAA+F;AAC/F,2FAA2F;AAC3F,
|
|
1
|
+
{"version":3,"file":"frame-values.js","sourceRoot":"","sources":["../src/frame-values.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DaemonDatabase } from "./sqlcipher-db.js";
|
|
2
|
+
export interface ReplyLag {
|
|
3
|
+
/** How many of their latest replies in a row were written before they saw your message. */
|
|
4
|
+
replies: number;
|
|
5
|
+
/** The last position those replies say they had seen. */
|
|
6
|
+
their_last_seen_seq: number;
|
|
7
|
+
/** Your newest message they had not seen. */
|
|
8
|
+
your_unseen_seq: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function replyLag(db: DaemonDatabase, agentPubkeyHex: string, sessionIdHex: string): ReplyLag | undefined;
|
|
11
|
+
//# sourceMappingURL=reply-lag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reply-lag.d.ts","sourceRoot":"","sources":["../src/reply-lag.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,MAAM,WAAW,QAAQ;IACvB,2FAA2F;IAC3F,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6CAA6C;IAC7C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CA4B/G"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Is the other side replying to an old message?
|
|
3
|
+
*
|
|
4
|
+
* Every message signs the last position its author had seen. Reading the other side's latest
|
|
5
|
+
* replies against this side's newest message tells the operator, during the conversation, that they
|
|
6
|
+
* are answering something older. One crossed reply is ordinary back-and-forth; two in a row is the
|
|
7
|
+
* signal. Reads the seal leaf store, which holds both sides' signed Structure 1.
|
|
8
|
+
*/
|
|
9
|
+
import { decodeStructure1 } from "@cello-protocol/protocol-types";
|
|
10
|
+
const LEAF_KIND_MSG = 0;
|
|
11
|
+
const LAG_THRESHOLD = 2;
|
|
12
|
+
export function replyLag(db, agentPubkeyHex, sessionIdHex) {
|
|
13
|
+
if (db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'session_seal_leaves'").get() === undefined)
|
|
14
|
+
return undefined;
|
|
15
|
+
const rows = db
|
|
16
|
+
.prepare(`SELECT sequence_number AS seq, structure1_cbor AS s1 FROM session_seal_leaves
|
|
17
|
+
WHERE agent_pubkey = ? AND session_id = ? AND leaf_kind = ? ORDER BY sequence_number ASC`)
|
|
18
|
+
.all(agentPubkeyHex, sessionIdHex, LEAF_KIND_MSG);
|
|
19
|
+
const mine = [];
|
|
20
|
+
const theirs = [];
|
|
21
|
+
for (const r of rows) {
|
|
22
|
+
const d = decodeStructure1(r.s1 instanceof Uint8Array ? r.s1 : new Uint8Array(r.s1));
|
|
23
|
+
if (!d.ok)
|
|
24
|
+
continue;
|
|
25
|
+
if (Buffer.from(d.fields.senderPubkey).toString("hex") === agentPubkeyHex)
|
|
26
|
+
mine.push(r.seq);
|
|
27
|
+
else
|
|
28
|
+
theirs.push({ seq: r.seq, lastSeen: d.fields.lastSeenSeq });
|
|
29
|
+
}
|
|
30
|
+
if (mine.length === 0 || theirs.length < LAG_THRESHOLD)
|
|
31
|
+
return undefined;
|
|
32
|
+
let replies = 0;
|
|
33
|
+
let unseen = 0;
|
|
34
|
+
for (let i = theirs.length - 1; i >= 0; i--) {
|
|
35
|
+
const t = theirs[i];
|
|
36
|
+
const newestMineBefore = mine.filter((m) => m < t.seq).at(-1);
|
|
37
|
+
if (newestMineBefore === undefined || t.lastSeen >= newestMineBefore)
|
|
38
|
+
break;
|
|
39
|
+
replies += 1;
|
|
40
|
+
unseen = Math.max(unseen, newestMineBefore);
|
|
41
|
+
}
|
|
42
|
+
if (replies < LAG_THRESHOLD)
|
|
43
|
+
return undefined;
|
|
44
|
+
return { replies, their_last_seen_seq: theirs[theirs.length - 1].lastSeen, your_unseen_seq: unseen };
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=reply-lag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reply-lag.js","sourceRoot":"","sources":["../src/reply-lag.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AAWxB,MAAM,UAAU,QAAQ,CAAC,EAAkB,EAAE,cAAsB,EAAE,YAAoB;IACvF,IAAI,EAAE,CAAC,OAAO,CAAC,mFAAmF,CAAC,CAAC,GAAG,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1I,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;iGAC2F,CAC5F;SACA,GAAG,CAAC,cAAc,EAAE,YAAY,EAAE,aAAa,CAA2C,CAAC;IAC9F,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,MAAM,GAA6C,EAAE,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,SAAS;QACpB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,cAAc;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;YACvF,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,aAAa;QAAE,OAAO,SAAS,CAAC;IACzE,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACrB,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,gBAAgB,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,gBAAgB;YAAE,MAAM;QAC5E,OAAO,IAAI,CAAC,CAAC;QACb,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,OAAO,GAAG,aAAa;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;AACxG,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SessionSealLeafStore } from "./session-seal-leaf-store.js";
|
|
2
|
+
import type { DaemonDatabase } from "./sqlcipher-db.js";
|
|
3
|
+
import type { Logger } from "./types.js";
|
|
4
|
+
/** Record an acknowledgement the live path just made. Forward-only: an earlier position is ignored. */
|
|
5
|
+
export declare function recordLastAck(db: DaemonDatabase, a: {
|
|
6
|
+
agentId: string;
|
|
7
|
+
sessionId: string;
|
|
8
|
+
seq: number;
|
|
9
|
+
hash: Uint8Array;
|
|
10
|
+
}): void;
|
|
11
|
+
export declare function lastSeenFromRecord(store: SessionSealLeafStore, logger: Logger, ownPubkey: Uint8Array, sessionIdHex: string): {
|
|
12
|
+
seq: number;
|
|
13
|
+
hash: Uint8Array;
|
|
14
|
+
} | undefined;
|
|
15
|
+
//# sourceMappingURL=resume-last-seen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume-last-seen.d.ts","sourceRoot":"","sources":["../src/resume-last-seen.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,uGAAuG;AACvG,wBAAgB,aAAa,CAC3B,EAAE,EAAE,cAAc,EAClB,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACvE,IAAI,CAMN;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,MAAM,GACnB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,SAAS,CAgB/C"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a resumed session's acknowledgement starts — from the durable record, not from nothing.
|
|
3
|
+
*
|
|
4
|
+
* The relay client keeps "the last position I saw from you" in memory. A session interrupted after
|
|
5
|
+
* messages (Ctrl-C, a restart) came back at position 0, so every close claimed "I have seen nothing
|
|
6
|
+
* from you". The relay refuses that as stale, because the other side's messages are filed after 0,
|
|
7
|
+
* and the re-sign waits for a new message that never comes: the session could never seal (live,
|
|
8
|
+
* 2026-09-14).
|
|
9
|
+
*
|
|
10
|
+
* Two durable sources, both holding RELAY positions — never a position guessed from the local leaf
|
|
11
|
+
* index, which can drift one ahead of the relay:
|
|
12
|
+
* - `session_last_ack`: what the live path acknowledged, written at the moment it did, for every
|
|
13
|
+
* route a message can arrive by (relay, direct, recovered park, screened-out);
|
|
14
|
+
* - the seal leaf store: every leaf the other side authored that the relay delivered, with the
|
|
15
|
+
* Structure 1 they signed.
|
|
16
|
+
* The higher of the two is where the live path would have been.
|
|
17
|
+
*/
|
|
18
|
+
import { decodeStructure1 } from "@cello-protocol/protocol-types";
|
|
19
|
+
/** Record an acknowledgement the live path just made. Forward-only: an earlier position is ignored. */
|
|
20
|
+
export function recordLastAck(db, a) {
|
|
21
|
+
db.prepare(`INSERT INTO session_last_ack (agent_id, session_id, relay_seq, hash_hex) VALUES (?, ?, ?, ?)
|
|
22
|
+
ON CONFLICT (agent_id, session_id) DO UPDATE SET relay_seq = excluded.relay_seq, hash_hex = excluded.hash_hex
|
|
23
|
+
WHERE excluded.relay_seq > session_last_ack.relay_seq`).run(a.agentId, a.sessionId, a.seq, Buffer.from(a.hash).toString("hex"));
|
|
24
|
+
}
|
|
25
|
+
export function lastSeenFromRecord(store, logger, ownPubkey, sessionIdHex) {
|
|
26
|
+
const own = Buffer.from(ownPubkey);
|
|
27
|
+
let best = store.recordedAcknowledgement(own.toString("hex"), sessionIdHex);
|
|
28
|
+
for (const leaf of store.getCarry(own.toString("hex"), sessionIdHex)) {
|
|
29
|
+
const s1 = decodeStructure1(leaf.structure1Cbor);
|
|
30
|
+
if (!s1.ok) {
|
|
31
|
+
logger.warn("session.relay.last_seen.resume_leaf_unreadable", {
|
|
32
|
+
sessionId: sessionIdHex, sequenceNumber: leaf.sequenceNumber, reason: s1.reason,
|
|
33
|
+
impact: "this stored leaf is skipped when resuming, so a close may claim an earlier position and be refused as stale",
|
|
34
|
+
});
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (Buffer.from(s1.fields.senderPubkey).equals(own))
|
|
38
|
+
continue;
|
|
39
|
+
if (!best || leaf.sequenceNumber > best.seq)
|
|
40
|
+
best = { seq: leaf.sequenceNumber, hash: s1.fields.contentHash };
|
|
41
|
+
}
|
|
42
|
+
return best;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=resume-last-seen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume-last-seen.js","sourceRoot":"","sources":["../src/resume-last-seen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAKlE,uGAAuG;AACvG,MAAM,UAAU,aAAa,CAC3B,EAAkB,EAClB,CAAwE;IAExE,EAAE,CAAC,OAAO,CACR;;2DAEuD,CACxD,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAA2B,EAC3B,MAAc,EACd,SAAqB,EACrB,YAAoB;IAEpB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,IAAI,GAAG,KAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;IAC5E,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;QACrE,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE;gBAC5D,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM;gBAC/E,MAAM,EAAE,6GAA6G;aACtH,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,SAAS;QAC9D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG;YAAE,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAChH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/seal-coordinator.js
CHANGED
|
@@ -191,7 +191,7 @@ export function createSealCoordinator(deps) {
|
|
|
191
191
|
// signaling stream after FROST notarization, once BOTH parties have submitted their SEAL
|
|
192
192
|
// ctrl leaf — resolves it with the sealed_root.
|
|
193
193
|
// M7-SESSION-004: the bilateral seal resolves with the sealed_root AND the legibility
|
|
194
|
-
// certificate (
|
|
194
|
+
// certificate (per-party frontiers, attestation modes, final_message).
|
|
195
195
|
const pendingSealWaiters = new Map();
|
|
196
196
|
// M7 DOD-SPINE-7: register the session_sealed completion handler on a signaling manager — per-agent
|
|
197
197
|
// in production (the directory routes session_sealed to the session-owning agent's authenticated
|
|
@@ -326,7 +326,7 @@ export function createSealCoordinator(deps) {
|
|
|
326
326
|
}
|
|
327
327
|
// M7-SESSION-004 (AC-005): normalise the wire legibility (Uint8Array pubkeys → hex) into a
|
|
328
328
|
// JSON-safe certificate and persist it with the sealed record so it survives a restart and
|
|
329
|
-
// is readable via
|
|
329
|
+
// is readable via the seal_certificate IPC read — per-party frontiers,
|
|
330
330
|
// attestation modes, and final_message.answered.
|
|
331
331
|
const legibility = normalizeLegibility(frame["legibility"]);
|
|
332
332
|
logger.info("session.sealed.received", {
|