@cello-protocol/transport 0.0.64 → 0.0.65

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/index.d.ts CHANGED
@@ -5,6 +5,8 @@
5
5
  */
6
6
  export { createNode, isValidMultiaddr, buildConfiguredHosts } from "./node.js";
7
7
  export { resolveConnectionMonitorConfig, WAN_PING_TIMEOUT_FLOOR_MS } from "./node.js";
8
+ export { resolveConnectionLimits, selectIdleConnections, recordStreamActivity, IDLE_CONNECTION_GRACE_MS, IDLE_CONNECTION_SWEEP_MS, DECLARED_MAX_CONNECTIONS, DECLARED_INBOUND_CONNECTION_THRESHOLD, DECLARED_MAX_INCOMING_PENDING, DECLARED_INBOUND_UPGRADE_TIMEOUT_MS, } from "./node.js";
9
+ export type { ResolvedConnectionLimits, IdleConnectionCandidate, IdleReapEvent, ConnectionCounts, } from "./node.js";
8
10
  export type { ResolvedConnectionMonitorConfig } from "./node.js";
9
11
  export type { CelloNode, CreateNodeOptions, CelloStreamHandler } from "./types.js";
10
12
  export type { CelloTransportError, ProtocolNotSupportedError, ConnectionLostError, NodeStoppedError, ListenFailedError, } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAI/E,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtF,YAAY,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAC;AACjE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACnF,YAAY,EACV,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGrI,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,aAAa,EACb,eAAe,EACf,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,kCAAkC,EAClC,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,MAAM,IAAI,yBAAyB,EACnC,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAI/E,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtF,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,qCAAqC,EACrC,6BAA6B,EAC7B,mCAAmC,GACpC,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,aAAa,EACb,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAC;AACjE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACnF,YAAY,EACV,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGrI,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,aAAa,EACb,eAAe,EACf,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,kCAAkC,EAClC,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,MAAM,IAAI,yBAAyB,EACnC,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -8,6 +8,8 @@ export { createNode, isValidMultiaddr, buildConfiguredHosts } from "./node.js";
8
8
  // capability marker a consumer can test for — the relay refuses to start on a transport that
9
9
  // predates the policy, because there the connectionMonitor option is silently ignored.
10
10
  export { resolveConnectionMonitorConfig, WAN_PING_TIMEOUT_FLOOR_MS } from "./node.js";
11
+ // DOD-M15-IDLE-CONNS-1 — the declared connection posture and the idle-connection judgement.
12
+ export { resolveConnectionLimits, selectIdleConnections, recordStreamActivity, IDLE_CONNECTION_GRACE_MS, IDLE_CONNECTION_SWEEP_MS, DECLARED_MAX_CONNECTIONS, DECLARED_INBOUND_CONNECTION_THRESHOLD, DECLARED_MAX_INCOMING_PENDING, DECLARED_INBOUND_UPGRADE_TIMEOUT_MS, } from "./node.js";
11
13
  export { CELLO_PROTOCOL_ID, CIRCUIT_RELAY_V2_HOP_PROTOCOL_ID, CELLO_CONTENT_PROTOCOL_ID, AUTONAT_PROTOCOL_ID } from "./protocols.js";
12
14
  export { LocalAutoNatStub, DEFAULT_DIALABILITY } from "./autonat.js";
13
15
  // CELLO-M7-TRANSPORT-001: real IAutoNatService over a live CelloNode (emits the
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC/E,iGAAiG;AACjG,6FAA6F;AAC7F,uFAAuF;AACvF,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAUtF,OAAO,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAIrI,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,gFAAgF;AAChF,kFAAkF;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAO1D,yDAAyD;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAgB1D,iDAAiD;AACjD,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,kCAAkC,EAClC,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,8EAA8E;AAC9E,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,aAAa,GACd,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC/E,iGAAiG;AACjG,6FAA6F;AAC7F,uFAAuF;AACvF,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtF,4FAA4F;AAC5F,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,qCAAqC,EACrC,6BAA6B,EAC7B,mCAAmC,GACpC,MAAM,WAAW,CAAC;AAgBnB,OAAO,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAIrI,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,gFAAgF;AAChF,kFAAkF;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAO1D,yDAAyD;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAgB1D,iDAAiD;AACjD,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,kCAAkC,EAClC,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,8EAA8E;AAC9E,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,aAAa,GACd,MAAM,wBAAwB,CAAC"}
package/dist/node.d.ts CHANGED
@@ -120,6 +120,143 @@ export interface ResolvedConnectionMonitorConfig {
120
120
  * the unilateral-seal gate. Only a node with no liveness duty toward its peers — the relay,
121
121
  * whose client liveness is the reservation TTL's job — should turn it off.
122
122
  */
123
+ /**
124
+ * ─── DOD-M15-IDLE-CONNS-1 — the connection posture is DECLARED HERE, not inherited ─────────────
125
+ *
126
+ * `createNode` passed no `connectionManager` block at all, so every one of these came from
127
+ * libp2p's own constants. They were correct; nobody had chosen them. A minor version bump
128
+ * re-prices what an unauthenticated peer can spend on an operator's machine, and no test in this
129
+ * repo would go red.
130
+ *
131
+ * The four values below are libp2p@3.3.2's defaults, adopted deliberately rather than changed. The
132
+ * DoD line is explicit that caps must not be guessed — *"a cap set without measurement breaks
133
+ * REACHABILITY, the one property this milestone must not trade away"* — and there is no
134
+ * measurement yet, because until this unit nothing reported a connection count at all. So the
135
+ * change here is **authorship, not tuning**: pin what runs today, make it visible, and let
136
+ * `getConnectionLimits()` supply the number a later tuning pass needs.
137
+ */
138
+ /** Total connections before libp2p prunes. libp2p@3.3.2 `MAX_CONNECTIONS`. */
139
+ export declare const DECLARED_MAX_CONNECTIONS = 300;
140
+ /** Inbound connections per remote host per window before refusal. `INBOUND_CONNECTION_THRESHOLD`. */
141
+ export declare const DECLARED_INBOUND_CONNECTION_THRESHOLD = 5;
142
+ /** Inbound connections mid-upgrade before new ones are refused. `MAX_INCOMING_PENDING_CONNECTIONS`. */
143
+ export declare const DECLARED_MAX_INCOMING_PENDING = 10;
144
+ /** How long an inbound connection may sit un-upgraded. `INBOUND_UPGRADE_TIMEOUT`. */
145
+ export declare const DECLARED_INBOUND_UPGRADE_TIMEOUT_MS = 10000;
146
+ /**
147
+ * How long an inbound connection that has NEVER carried a stream may live.
148
+ *
149
+ * ─── THIS MEASURES "NEVER SPOKE", NOT "IS QUIET RIGHT NOW" ─────────────────────────────────────
150
+ *
151
+ * The first version compared `now - openedAt` and ANDed it with `streamCount === 0` at the instant
152
+ * of the sweep — i.e. it measured connection AGE and sampled business. Review flagged that as
153
+ * fatal on the grounds that CELLO content streams are per-message and ephemeral, so a busy session
154
+ * would sit at zero streams almost all of the time and be reaped mid-conversation.
155
+ *
156
+ * **MEASURED BEFORE ACCEPTING IT, and the stated mechanism does NOT reproduce on libp2p@3.3.2.**
157
+ * A stream closed by the dialer stays in the listener's `connection.streams` — `streamCount` was
158
+ * still 1 after 10s (25 samples, 400ms apart), and under the reviewer's own scenario (a stream
159
+ * every 400ms, 1000ms grace) it CLIMBED 1→8 across 3.2s and nothing was reaped. So the specific
160
+ * claim "a busy session sits at zero streams" is false here, and the reported hang-up at t≈1200ms
161
+ * did not occur when the scenario was re-run against that predicate.
162
+ *
163
+ * **The fix stays anyway, and the reason is the honest one:** the old predicate was correct only
164
+ * BECAUSE libp2p happens to retain closed streams. That is an implementation detail of a
165
+ * dependency, undocumented and free to change in a patch release — precisely the kind of inherited
166
+ * behaviour the other half of this unit exists to stop relying on. `hasEverCarriedStream` is the
167
+ * literal reading of the DoD's "authenticates to nothing" and it holds whatever libp2p does with
168
+ * closed streams.
169
+ */
170
+ export declare const IDLE_CONNECTION_GRACE_MS = 90000;
171
+ /** How often the sweep runs. A third of the grace period, so nothing lives much past it. */
172
+ export declare const IDLE_CONNECTION_SWEEP_MS = 30000;
173
+ /** What the sweep reports when it acts, or fails to. Consumed by the daemon's logger. */
174
+ export interface IdleReapEvent {
175
+ peerId: string;
176
+ ageMs: number;
177
+ reason: "never_carried_a_stream" | "hangup_failed" | "sweep_failed";
178
+ error?: string;
179
+ }
180
+ /** The connection census, emitted every sweep — the measurement the DoD line demands. */
181
+ export interface ConnectionCounts {
182
+ total: number;
183
+ inbound: number;
184
+ /** Inbound connections that have not carried a stream since they opened. */
185
+ neverSpoke: number;
186
+ maxConnections: number;
187
+ }
188
+ /** The connection-manager block handed to libp2p, resolved once. */
189
+ export interface ResolvedConnectionLimits {
190
+ maxConnections: number;
191
+ inboundConnectionThreshold: number;
192
+ maxIncomingPendingConnections: number;
193
+ inboundUpgradeTimeout: number;
194
+ }
195
+ /**
196
+ * Resolve the declared limits, honouring per-node overrides.
197
+ *
198
+ * Spreads the declared block FIRST so an override that names one key keeps the other three. An
199
+ * override that returned only what it was given would re-inherit the rest from libp2p — this
200
+ * unit's own defect, reintroduced by its fix.
201
+ */
202
+ export declare function resolveConnectionLimits(opts: {
203
+ connectionLimits?: Partial<ResolvedConnectionLimits>;
204
+ }): ResolvedConnectionLimits;
205
+ /** What the reaper needs to judge one connection. */
206
+ export interface IdleConnectionCandidate {
207
+ /** libp2p's per-CONNECTION id. A peer may hold several; the activity bit is per connection. */
208
+ id: string;
209
+ peerId: string;
210
+ direction: "inbound" | "outbound";
211
+ streamCount: number;
212
+ openedAt: number;
213
+ }
214
+ /**
215
+ * Which connections should be hung up — pure, so the judgement is testable apart from the sweep.
216
+ *
217
+ * FOUR THINGS ARE SPARED, and each is spared for a reason that costs something real if forgotten:
218
+ *
219
+ * - **Anything carrying a stream.** That is the definition of in use.
220
+ * - **Anything inside the grace period.** A connection is silent for a moment on every dial.
221
+ * - **Every INBOUND connection that has ever carried a stream** (see the grace constant). A peer
222
+ * that has spoken is not "authenticating to nothing", however quiet it is now.
223
+ * - **Every OUTBOUND connection** — as a SELECTION rule. This node chose those: the content-park
224
+ * deposit and pull, the restart-seal submission to a prior session's relay. Reaping one cancels
225
+ * our own errand to bound someone else's connection. **Note the honest bound:** `hangUp` is
226
+ * PEER-scoped and drops every connection to that peer, so a peer holding one idle inbound AND
227
+ * one live outbound connection loses both. Nothing reaches that state today (the gater denies
228
+ * inbound from any peer that is not the named counterparty or the reserved relay, and both are
229
+ * spared), but the rule is "outbound connections are never SELECTED", not "outbound connections
230
+ * are never closed". This project has already paid once for a comment claiming the stronger
231
+ * version — `session-node-manager.ts` records a sweep that hung up the content-park dials and
232
+ * surfaced as `relay_unavailable`, a transport label for a local decision.
233
+ * - **Whatever `isSpared` names.** In production: the relay this node holds a live reservation
234
+ * with, and the counterparty the gate currently names. A relay reservation is IDLE BY NATURE
235
+ * between refreshes, which is exactly the shape hunted here — a reaper without it takes an
236
+ * agent's inbound reachability away and reports nothing.
237
+ */
238
+ /**
239
+ * Fold this sweep's observation into the activity set: mark anything carrying a stream, and forget
240
+ * connections that have gone.
241
+ *
242
+ * EXTRACTED so it can be attacked directly. Mutation testing showed that deleting the recording
243
+ * left every test green, because no live test can reach the state where it matters — libp2p retains
244
+ * closed streams, so `streamCount` does not fall back to 0 within any window a test can wait for.
245
+ * The bit is still the thing that makes the judgement independent of that libp2p behaviour, so it
246
+ * needs coverage that does not depend on it.
247
+ */
248
+ export declare function recordStreamActivity(seen: Set<string>, connections: readonly {
249
+ id: string;
250
+ streamCount: number;
251
+ }[]): void;
252
+ export declare function selectIdleConnections(args: {
253
+ connections: readonly IdleConnectionCandidate[];
254
+ now: number;
255
+ isSpared: (peerId: string) => boolean;
256
+ /** Has this CONNECTION carried a stream at any point since it opened? Never a candidate if so. */
257
+ hasEverCarriedStream: (connectionId: string) => boolean;
258
+ graceMs?: number;
259
+ }): string[];
123
260
  export declare function resolveConnectionMonitorConfig(opts: {
124
261
  keepAliveIntervalMs?: number;
125
262
  connectionMonitor?: {
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoBH,OAAO,KAAK,EACV,SAAS,EAET,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAiDpB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAOzG;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOtD;AAucD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,WAAW,+BAA+B;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE;QAAE,4BAA4B,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3F,GAAG,+BAA+B,CAOlC;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAgG5E"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
package/dist/node.js CHANGED
@@ -182,6 +182,26 @@ class CelloNodeImpl {
182
182
  // zero-listener refusal in start()).
183
183
  #hasCircuitListen;
184
184
  #dropAutonatResponder;
185
+ /**
186
+ * DOD-M15-IDLE-CONNS-1. Set once by createNode from the SAME object libp2p was given, so the
187
+ * reported policy cannot drift from the configured one — the discipline
188
+ * `resolveConnectionMonitorConfig` already states: what libp2p is configured with is what the
189
+ * node reports, by construction rather than by two call sites agreeing.
190
+ */
191
+ #connectionLimits = resolveConnectionLimits({});
192
+ /** The idle-connection sweep, when this node runs one. Cleared in stop() so it cannot outlive it. */
193
+ #idleReaperTimer = null;
194
+ #idleReaperConfig = null;
195
+ /** Peers the reaper must never hang up — the reserved relay and the named counterparty. */
196
+ #idleReaperSpared = () => false;
197
+ /**
198
+ * Connection ids observed carrying at least one stream. The activity bit F1 was missing.
199
+ *
200
+ * Keyed on CONNECTION id, not peer id: a peer may hold several connections and the question is
201
+ * about this one. Pruned to live connections on every sweep so a long-lived node does not
202
+ * accumulate ids for connections that closed months ago.
203
+ */
204
+ #everCarriedStream = new Set();
185
205
  constructor(libp2p, keyProvider, configuredHosts, expectsDirectListener, hasCircuitListen, dropAutonatResponder = false) {
186
206
  this.#libp2p = libp2p;
187
207
  this.keyProvider = keyProvider;
@@ -257,10 +277,122 @@ class CelloNodeImpl {
257
277
  message: "no listener of any kind materialised for a circuit-only listen set (every relay unreachable)",
258
278
  };
259
279
  }
280
+ // Armed by createNode; started here so the interval's lifetime is exactly the node's running
281
+ // lifetime, and a node that was built but never started leaves nothing behind.
282
+ this.#startIdleReaper();
260
283
  }
261
284
  async stop() {
285
+ // Before libp2p, so a sweep cannot fire against a stopping node and log a hangUp failure that
286
+ // reads like a fault. A timer that outlives its node is how a "stopped" daemon keeps working.
287
+ if (this.#idleReaperTimer !== null) {
288
+ clearInterval(this.#idleReaperTimer);
289
+ this.#idleReaperTimer = null;
290
+ }
262
291
  await this.#libp2p.stop();
263
292
  }
293
+ /** The connection-manager policy libp2p was actually given. */
294
+ getConnectionLimits() {
295
+ return this.#connectionLimits;
296
+ }
297
+ /** Set by createNode with the resolved object — never a second copy. */
298
+ setConnectionLimits(limits) {
299
+ this.#connectionLimits = limits;
300
+ }
301
+ /**
302
+ * DOD-M15-IDLE-CONNS-1 — name the peers the idle reaper must never hang up.
303
+ *
304
+ * The daemon calls this with the gater's reserved-relay slot and the directory peers. Left as a
305
+ * setter rather than a constructor argument because the reserved relay CHANGES: a reservation is
306
+ * lost and retaken against a different relay, and a predicate captured once at construction would
307
+ * go on sparing a relay this node no longer talks to while reaping the one it does.
308
+ */
309
+ setIdleReaperSpared(isSpared) {
310
+ this.#idleReaperSpared = isSpared;
311
+ }
312
+ /**
313
+ * Arm the idle sweep. The TIMER does not start here — `start()` starts it, so a node that is
314
+ * built and never started leaves no interval behind, and a stop()/start() cycle gets a fresh one.
315
+ */
316
+ enableIdleReaper(config) {
317
+ this.#idleReaperConfig = config;
318
+ }
319
+ #startIdleReaper() {
320
+ const config = this.#idleReaperConfig;
321
+ if (config === null || this.#idleReaperTimer !== null)
322
+ return;
323
+ this.#idleReaperTimer = setInterval(() => {
324
+ // Review F5: `getConnections()` and `isSpared` both sit outside the try below, and `isSpared`
325
+ // reaches into the daemon's gater. An unhandled rejection here takes the whole daemon down —
326
+ // a hazard `session-node-manager.ts` already names in exactly those words.
327
+ void this.#sweepIdleConnections().catch((err) => {
328
+ config.onReaped?.({
329
+ peerId: "",
330
+ ageMs: 0,
331
+ reason: "sweep_failed",
332
+ error: err instanceof Error ? err.message : String(err),
333
+ });
334
+ });
335
+ }, config.sweepIntervalMs);
336
+ // Node keeps the event loop alive for a pending interval; a daemon that has stopped serving
337
+ // must still be able to exit.
338
+ this.#idleReaperTimer.unref?.();
339
+ }
340
+ async #sweepIdleConnections() {
341
+ const config = this.#idleReaperConfig;
342
+ if (config === null)
343
+ return;
344
+ const now = Date.now();
345
+ const connections = this.getConnections();
346
+ // Record activity BEFORE judging. A connection seen carrying a stream even once is never a
347
+ // candidate again, whatever libp2p later does with its closed streams.
348
+ recordStreamActivity(this.#everCarriedStream, connections);
349
+ // C4: the count the DoD asks for, reported every sweep. Emitted BEFORE any hang-up so the
350
+ // number describes what was observed, not what survived.
351
+ config.onObserved?.({
352
+ total: connections.length,
353
+ inbound: connections.filter((c) => c.direction === "inbound").length,
354
+ neverSpoke: connections.filter((c) => c.direction === "inbound" && !this.#everCarriedStream.has(c.id)).length,
355
+ maxConnections: this.#connectionLimits.maxConnections,
356
+ });
357
+ const oldestByPeer = new Map();
358
+ for (const c of connections) {
359
+ const prior = oldestByPeer.get(c.peerId);
360
+ if (prior === undefined || c.openedAt < prior)
361
+ oldestByPeer.set(c.peerId, c.openedAt);
362
+ }
363
+ const doomed = selectIdleConnections({
364
+ connections,
365
+ now,
366
+ isSpared: this.#idleReaperSpared,
367
+ hasEverCarriedStream: (id) => this.#everCarriedStream.has(id),
368
+ graceMs: config.graceMs,
369
+ });
370
+ for (const peerId of doomed) {
371
+ try {
372
+ await this.hangUp(peerId);
373
+ // Review F3: a hang-up that tells nobody is indistinguishable from the thing simply not
374
+ // happening — which is what the operator concludes when their next send returns
375
+ // `no_connection` and nothing anywhere names the local sweep.
376
+ config.onReaped?.({
377
+ peerId,
378
+ ageMs: now - (oldestByPeer.get(peerId) ?? now),
379
+ reason: "never_carried_a_stream",
380
+ });
381
+ }
382
+ catch (err) {
383
+ // NOT swallowed. `hangUp` throws a NAMED `invalid_peer_id` written precisely so a malformed
384
+ // id is not read as a connection problem; an empty catch destroys that distinction and
385
+ // returns this code to the error substitution it was written to prevent. Reported and the
386
+ // loop continues, so one bad peer does not cancel the sweep for every other connection.
387
+ config.onReaped?.({
388
+ peerId,
389
+ ageMs: now - (oldestByPeer.get(peerId) ?? now),
390
+ reason: "hangup_failed",
391
+ error: err instanceof Error ? err.message : String(err),
392
+ });
393
+ }
394
+ }
395
+ }
264
396
  listenAddresses() {
265
397
  return this.#libp2p.getMultiaddrs().map((ma) => ma.toString());
266
398
  }
@@ -349,8 +481,17 @@ class CelloNodeImpl {
349
481
  }
350
482
  getConnections() {
351
483
  return this.#libp2p.getConnections().map((c) => ({
484
+ // Per-CONNECTION id. A peer may hold several and the activity bit is about one of them.
485
+ id: c.id,
352
486
  peerId: c.remotePeer.toString(),
353
487
  encryption: c.encryption,
488
+ // DOD-M15-IDLE-CONNS-1: the three fields a reaper needs, and the three an operator needs to
489
+ // see a flood instead of inferring one. Nothing reported a connection count before this —
490
+ // which is why the DoD's own instruction to "measure a healthy daemon's connection count
491
+ // first" could not be followed: the measurement did not exist.
492
+ direction: c.direction,
493
+ openedAt: c.timeline.open,
494
+ streamCount: c.streams.length,
354
495
  // DOD-M12-CONN-OBSERVE-1: the SOCKET status, which is not the muxer's. libp2p checks the two
355
496
  // separately in `newStream` — muxer first — so a stream failing with
356
497
  // `The connection muxer is "closed" and not "open"` returns before the socket is looked at,
@@ -586,6 +727,129 @@ export const WAN_PING_TIMEOUT_FLOOR_MS = 30_000;
586
727
  * the unilateral-seal gate. Only a node with no liveness duty toward its peers — the relay,
587
728
  * whose client liveness is the reservation TTL's job — should turn it off.
588
729
  */
730
+ /**
731
+ * ─── DOD-M15-IDLE-CONNS-1 — the connection posture is DECLARED HERE, not inherited ─────────────
732
+ *
733
+ * `createNode` passed no `connectionManager` block at all, so every one of these came from
734
+ * libp2p's own constants. They were correct; nobody had chosen them. A minor version bump
735
+ * re-prices what an unauthenticated peer can spend on an operator's machine, and no test in this
736
+ * repo would go red.
737
+ *
738
+ * The four values below are libp2p@3.3.2's defaults, adopted deliberately rather than changed. The
739
+ * DoD line is explicit that caps must not be guessed — *"a cap set without measurement breaks
740
+ * REACHABILITY, the one property this milestone must not trade away"* — and there is no
741
+ * measurement yet, because until this unit nothing reported a connection count at all. So the
742
+ * change here is **authorship, not tuning**: pin what runs today, make it visible, and let
743
+ * `getConnectionLimits()` supply the number a later tuning pass needs.
744
+ */
745
+ /** Total connections before libp2p prunes. libp2p@3.3.2 `MAX_CONNECTIONS`. */
746
+ export const DECLARED_MAX_CONNECTIONS = 300;
747
+ /** Inbound connections per remote host per window before refusal. `INBOUND_CONNECTION_THRESHOLD`. */
748
+ export const DECLARED_INBOUND_CONNECTION_THRESHOLD = 5;
749
+ /** Inbound connections mid-upgrade before new ones are refused. `MAX_INCOMING_PENDING_CONNECTIONS`. */
750
+ export const DECLARED_MAX_INCOMING_PENDING = 10;
751
+ /** How long an inbound connection may sit un-upgraded. `INBOUND_UPGRADE_TIMEOUT`. */
752
+ export const DECLARED_INBOUND_UPGRADE_TIMEOUT_MS = 10_000;
753
+ /**
754
+ * How long an inbound connection that has NEVER carried a stream may live.
755
+ *
756
+ * ─── THIS MEASURES "NEVER SPOKE", NOT "IS QUIET RIGHT NOW" ─────────────────────────────────────
757
+ *
758
+ * The first version compared `now - openedAt` and ANDed it with `streamCount === 0` at the instant
759
+ * of the sweep — i.e. it measured connection AGE and sampled business. Review flagged that as
760
+ * fatal on the grounds that CELLO content streams are per-message and ephemeral, so a busy session
761
+ * would sit at zero streams almost all of the time and be reaped mid-conversation.
762
+ *
763
+ * **MEASURED BEFORE ACCEPTING IT, and the stated mechanism does NOT reproduce on libp2p@3.3.2.**
764
+ * A stream closed by the dialer stays in the listener's `connection.streams` — `streamCount` was
765
+ * still 1 after 10s (25 samples, 400ms apart), and under the reviewer's own scenario (a stream
766
+ * every 400ms, 1000ms grace) it CLIMBED 1→8 across 3.2s and nothing was reaped. So the specific
767
+ * claim "a busy session sits at zero streams" is false here, and the reported hang-up at t≈1200ms
768
+ * did not occur when the scenario was re-run against that predicate.
769
+ *
770
+ * **The fix stays anyway, and the reason is the honest one:** the old predicate was correct only
771
+ * BECAUSE libp2p happens to retain closed streams. That is an implementation detail of a
772
+ * dependency, undocumented and free to change in a patch release — precisely the kind of inherited
773
+ * behaviour the other half of this unit exists to stop relying on. `hasEverCarriedStream` is the
774
+ * literal reading of the DoD's "authenticates to nothing" and it holds whatever libp2p does with
775
+ * closed streams.
776
+ */
777
+ export const IDLE_CONNECTION_GRACE_MS = 90_000;
778
+ /** How often the sweep runs. A third of the grace period, so nothing lives much past it. */
779
+ export const IDLE_CONNECTION_SWEEP_MS = 30_000;
780
+ /**
781
+ * Resolve the declared limits, honouring per-node overrides.
782
+ *
783
+ * Spreads the declared block FIRST so an override that names one key keeps the other three. An
784
+ * override that returned only what it was given would re-inherit the rest from libp2p — this
785
+ * unit's own defect, reintroduced by its fix.
786
+ */
787
+ export function resolveConnectionLimits(opts) {
788
+ return {
789
+ maxConnections: DECLARED_MAX_CONNECTIONS,
790
+ inboundConnectionThreshold: DECLARED_INBOUND_CONNECTION_THRESHOLD,
791
+ maxIncomingPendingConnections: DECLARED_MAX_INCOMING_PENDING,
792
+ inboundUpgradeTimeout: DECLARED_INBOUND_UPGRADE_TIMEOUT_MS,
793
+ ...(opts.connectionLimits ?? {}),
794
+ };
795
+ }
796
+ /**
797
+ * Which connections should be hung up — pure, so the judgement is testable apart from the sweep.
798
+ *
799
+ * FOUR THINGS ARE SPARED, and each is spared for a reason that costs something real if forgotten:
800
+ *
801
+ * - **Anything carrying a stream.** That is the definition of in use.
802
+ * - **Anything inside the grace period.** A connection is silent for a moment on every dial.
803
+ * - **Every INBOUND connection that has ever carried a stream** (see the grace constant). A peer
804
+ * that has spoken is not "authenticating to nothing", however quiet it is now.
805
+ * - **Every OUTBOUND connection** — as a SELECTION rule. This node chose those: the content-park
806
+ * deposit and pull, the restart-seal submission to a prior session's relay. Reaping one cancels
807
+ * our own errand to bound someone else's connection. **Note the honest bound:** `hangUp` is
808
+ * PEER-scoped and drops every connection to that peer, so a peer holding one idle inbound AND
809
+ * one live outbound connection loses both. Nothing reaches that state today (the gater denies
810
+ * inbound from any peer that is not the named counterparty or the reserved relay, and both are
811
+ * spared), but the rule is "outbound connections are never SELECTED", not "outbound connections
812
+ * are never closed". This project has already paid once for a comment claiming the stronger
813
+ * version — `session-node-manager.ts` records a sweep that hung up the content-park dials and
814
+ * surfaced as `relay_unavailable`, a transport label for a local decision.
815
+ * - **Whatever `isSpared` names.** In production: the relay this node holds a live reservation
816
+ * with, and the counterparty the gate currently names. A relay reservation is IDLE BY NATURE
817
+ * between refreshes, which is exactly the shape hunted here — a reaper without it takes an
818
+ * agent's inbound reachability away and reports nothing.
819
+ */
820
+ /**
821
+ * Fold this sweep's observation into the activity set: mark anything carrying a stream, and forget
822
+ * connections that have gone.
823
+ *
824
+ * EXTRACTED so it can be attacked directly. Mutation testing showed that deleting the recording
825
+ * left every test green, because no live test can reach the state where it matters — libp2p retains
826
+ * closed streams, so `streamCount` does not fall back to 0 within any window a test can wait for.
827
+ * The bit is still the thing that makes the judgement independent of that libp2p behaviour, so it
828
+ * needs coverage that does not depend on it.
829
+ */
830
+ export function recordStreamActivity(seen, connections) {
831
+ const live = new Set(connections.map((c) => c.id));
832
+ for (const id of seen)
833
+ if (!live.has(id))
834
+ seen.delete(id);
835
+ for (const c of connections)
836
+ if (c.streamCount > 0)
837
+ seen.add(c.id);
838
+ }
839
+ export function selectIdleConnections(args) {
840
+ const grace = args.graceMs ?? IDLE_CONNECTION_GRACE_MS;
841
+ const doomed = args.connections
842
+ .filter((c) => c.direction === "inbound" &&
843
+ c.streamCount === 0 &&
844
+ !args.hasEverCarriedStream(c.id) &&
845
+ args.now - c.openedAt >= grace &&
846
+ !args.isSpared(c.peerId))
847
+ .map((c) => c.peerId);
848
+ // DEDUPLICATED because `hangUp` is PEER-scoped: two idle connections to one peer would otherwise
849
+ // yield the same id twice and hang it up twice. Harmless but noisy, and it would double-count in
850
+ // whatever the caller reports.
851
+ return [...new Set(doomed)];
852
+ }
589
853
  export function resolveConnectionMonitorConfig(opts) {
590
854
  const override = opts.connectionMonitor;
591
855
  return {
@@ -618,6 +882,8 @@ export async function createNode(opts) {
618
882
  // Resolved ONCE and shared: what libp2p is configured with is what the node reports, by
619
883
  // construction rather than by two call sites agreeing.
620
884
  const connectionMonitorPolicy = resolveConnectionMonitorConfig(opts);
885
+ // Same discipline, same reason: resolved ONCE and handed to both libp2p and the node.
886
+ const connectionLimits = resolveConnectionLimits(opts);
621
887
  const libp2p = await createLibp2p({
622
888
  start: false,
623
889
  privateKey: transportKey,
@@ -670,6 +936,8 @@ export async function createNode(opts) {
670
936
  dcutr: dcutr(),
671
937
  },
672
938
  ...(opts.connectionGater ? { connectionGater: opts.connectionGater } : {}),
939
+ // DOD-M15-IDLE-CONNS-1: declared, not inherited. Same object the node reports.
940
+ connectionManager: connectionLimits,
673
941
  // DOD-RELAY-KEEPALIVE-1: the monitor's policy is ours now, not libp2p's defaults.
674
942
  // Keepalive pings still detect a peer that vanished without a clean close, but the deadline
675
943
  // a ping must meet is a WAN deadline rather than 5 seconds.
@@ -683,6 +951,19 @@ export async function createNode(opts) {
683
951
  const expectsDirectListener = hasCircuitListen && opts.listenAddresses.some((a) => !a.includes("/p2p-circuit"));
684
952
  const node = new CelloNodeImpl(libp2p, opts.keyProvider, configuredHosts, expectsDirectListener, hasCircuitListen, !includeAutonatResponder);
685
953
  node.setConnectionMonitorPolicy(connectionMonitorPolicy);
954
+ node.setConnectionLimits(connectionLimits);
955
+ if (opts.idleConnectionReaper) {
956
+ node.enableIdleReaper({
957
+ graceMs: opts.idleConnectionReaper.graceMs ?? IDLE_CONNECTION_GRACE_MS,
958
+ sweepIntervalMs: opts.idleConnectionReaper.sweepIntervalMs ?? IDLE_CONNECTION_SWEEP_MS,
959
+ // Forwarded EXPLICITLY. The first version of this call built the config from the two numbers
960
+ // and silently dropped both callbacks, so the daemon's logging and its connection census were
961
+ // declared, honoured by the node, and reachable by nobody — the same shape as `wait_for_seal`
962
+ // being declared, honoured and never forwarded by the shim.
963
+ ...(opts.idleConnectionReaper.onReaped ? { onReaped: opts.idleConnectionReaper.onReaped } : {}),
964
+ ...(opts.idleConnectionReaper.onObserved ? { onObserved: opts.idleConnectionReaper.onObserved } : {}),
965
+ });
966
+ }
686
967
  return node;
687
968
  }
688
969
  //# sourceMappingURL=node.js.map
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -16,6 +16,7 @@ import type { KeyProvider } from "@cello-protocol/crypto";
16
16
  import type { ConnectionGater, Stream } from "@libp2p/interface";
17
17
  import type { Dialability, Unsubscribe } from "./autonat.js";
18
18
  import type { ResolvedConnectionMonitorConfig as ConnectionMonitorPolicy } from "./node.js";
19
+ import type { IdleReapEvent, ConnectionCounts } from "./node.js";
19
20
  export interface CreateNodeOptions {
20
21
  /**
21
22
  * The CELLO KeyProvider holding K_local (Ed25519 signing key).
@@ -145,6 +146,47 @@ export interface CreateNodeOptions {
145
146
  */
146
147
  pingTimeoutMinMs?: number;
147
148
  };
149
+ /**
150
+ * DOD-M15-IDLE-CONNS-1 — override the DECLARED connection-manager limits for this node.
151
+ *
152
+ * Omit it and the declared block applies. Values live in `resolveConnectionLimits`; they are
153
+ * libp2p's own defaults adopted deliberately, so this changes nothing today and makes a future
154
+ * libp2p bump visible instead of silent. A relay legitimately carries far more connections than
155
+ * an operator's laptop, which is what the override is for.
156
+ */
157
+ connectionLimits?: {
158
+ maxConnections?: number;
159
+ inboundConnectionThreshold?: number;
160
+ maxIncomingPendingConnections?: number;
161
+ inboundUpgradeTimeout?: number;
162
+ };
163
+ /**
164
+ * DOD-M15-IDLE-CONNS-1 — run the idle-connection sweep on this node.
165
+ *
166
+ * OPT-IN, and deliberately so: the node that needs it is the one accepting inbound dials from
167
+ * peers it did not choose (the standing receiver). A directory-signaling node's connections are
168
+ * ones it dialled, and a relay's clients are governed by the reservation TTL — sweeping either
169
+ * would hang up links their own subsystem is responsible for.
170
+ */
171
+ idleConnectionReaper?: {
172
+ /**
173
+ * How long a connection that has NEVER carried a stream may live. Default
174
+ * `IDLE_CONNECTION_GRACE_MS`. NOT an idle timer: a connection that has ever spoken is never a
175
+ * candidate again, because CELLO's per-message streams leave a busy session at zero streams
176
+ * almost all of the time.
177
+ */
178
+ graceMs?: number;
179
+ /** How often to look. Default `IDLE_CONNECTION_SWEEP_MS`. */
180
+ sweepIntervalMs?: number;
181
+ /**
182
+ * Told when a connection is hung up, and when a sweep or a hang-up FAILS. Without it the reaper
183
+ * is a guard nobody hears — the operator's next send returns `no_connection` and nothing names
184
+ * the local timer that caused it.
185
+ */
186
+ onReaped?: (event: IdleReapEvent) => void;
187
+ /** Told the connection census every sweep — the count the DoD line requires before any tuning. */
188
+ onObserved?: (counts: ConnectionCounts) => void;
189
+ };
148
190
  }
149
191
  /**
150
192
  * Handler called when a remote peer opens a stream on a registered protocol.
@@ -222,6 +264,8 @@ export interface CelloNode {
222
264
  * tell "dead muxer on a live socket" from "dead through" — see hangUp (DOD-M12-CONN-EVICT-1).
223
265
  */
224
266
  getConnections(): Array<{
267
+ /** libp2p's per-CONNECTION id — a peer may hold several, and the activity bit is per connection. */
268
+ id: string;
225
269
  peerId: string;
226
270
  encryption: string | undefined;
227
271
  remoteAddr?: string;
@@ -233,7 +277,38 @@ export interface CelloNode {
233
277
  * defaulted, because inventing "open" here would recreate the blindness it exists to remove.
234
278
  */
235
279
  muxerStatus?: string;
280
+ /**
281
+ * DOD-M15-IDLE-CONNS-1. Who dialled whom. The reaper only ever touches `inbound`: an outbound
282
+ * connection is an errand this agent started, and hanging one up cancels our own work.
283
+ */
284
+ direction: "inbound" | "outbound";
285
+ /** Epoch-ms the connection opened, from libp2p's own timeline. The reaper's clock. */
286
+ openedAt: number;
287
+ /** Live streams on this connection. Zero is what "authenticates to nothing" actually looks like. */
288
+ streamCount: number;
236
289
  }>;
290
+ /**
291
+ * The connection-manager limits libp2p was given — the SAME object, not a rebuilt copy.
292
+ *
293
+ * Answerable at runtime for the reason the DoD line insists on: a cap set without measurement
294
+ * breaks reachability, and until this existed there was no way to measure a healthy daemon's
295
+ * connection count at all.
296
+ */
297
+ getConnectionLimits(): {
298
+ maxConnections: number;
299
+ inboundConnectionThreshold: number;
300
+ maxIncomingPendingConnections: number;
301
+ inboundUpgradeTimeout: number;
302
+ };
303
+ /**
304
+ * Name the peers the idle sweep must never hang up — the relay this node holds a live reservation
305
+ * with, and the peer the gate currently names (the admitted dialer, then the counterparty).
306
+ *
307
+ * A reservation connection is idle BY NATURE between refreshes, which is precisely the shape the
308
+ * sweep hunts. And the node is REUSED across promotion, so without the second the sweep reaps the
309
+ * counterparty mid-conversation. Settable rather than fixed at construction because both change.
310
+ */
311
+ setIdleReaperSpared(isSpared: (peerId: string) => boolean): void;
237
312
  /**
238
313
  * DOD-M12-CONN-EVICT-1: drop every connection to this peer.
239
314
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cello-protocol/transport",
3
- "version": "0.0.64",
3
+ "version": "0.0.65",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "engines": {
@@ -39,8 +39,8 @@
39
39
  "it-pipe": "^3.0.1",
40
40
  "libp2p": "^3.2.3",
41
41
  "uint8arrays": "^5.1.1",
42
- "@cello-protocol/crypto": "0.0.58",
43
- "@cello-protocol/protocol-types": "0.0.62"
42
+ "@cello-protocol/crypto": "0.0.59",
43
+ "@cello-protocol/protocol-types": "0.0.63"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@claude-flow/testing": "3.0.0-alpha.6",