@cotal-ai/core 0.19.0 → 0.20.1

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.
@@ -1,7 +1,7 @@
1
1
  import { spacePrefix, principalKey } from "./subjects.js";
2
2
  import { endpointToken, assertBoundedOwner, assertLifecycleToken, assertCommandToken, assertPoolToken, } from "./endpoint-subjects.js";
3
3
  import { EpEnvelopeError } from "./endpoint-envelope.js";
4
- import { RECORD_KINDS, GOVERN_HEAD, recordSpecKey, recordStatusKey, recordAtomicKey, readRecord, recordsBucket, createRecordEntry, updateRecordEntry, assertStatusValue, } from "./endpoint-records.js";
4
+ import { RECORD_KINDS, GOVERN_HEAD, recordSpecKey, recordStatusKey, recordAtomicKey, readRecord, recordsBucket, createRecordEntry, updateRecordEntry, deleteRecordEntry, assertStatusValue, } from "./endpoint-records.js";
5
5
  import { verifyClusterManifest, verifyClusterRoot, deriveDescriptor, GOVERNED_TRAIT_URNS } from "./endpoint-cluster.js";
6
6
  import { isSupervisorWrite } from "./endpoint-supervisor.js";
7
7
  /** The convergence states the SPEC keys on (§13.6 item 6). */
@@ -425,7 +425,21 @@ export async function registerServiceInstance(kv, args) {
425
425
  // genuinely infra/ambiguous — never a concurrent-CAS loss we could treat as a definite no-write.
426
426
  let newRev;
427
427
  try {
428
- newRev = current && current.operation === "PUT"
428
+ // A DEREGISTRATION TOMBSTONE IS RE-REGISTRABLE, and it is the only record kind here that is.
429
+ // `createRecordEntry` fences against the key's entire history, so a create over a DEL marker is
430
+ // a loud conflict — correct for the never-deleted lifecycle families, and fatal here: §13.5
431
+ // makes a deleted spec an EXPLICIT deregistration ({@link deregisterServiceInstance}), so a
432
+ // manager that deregisters on a clean stop could never start again. The tombstone is therefore
433
+ // written OVER, revision-pinned to the marker's own revision, which is still a CAS and still
434
+ // refuses a blind write.
435
+ //
436
+ // Reusing the id is safe because the records key was never what bound it: §13.1 binds the
437
+ // lifecycle to the ISSUANCE GATE, which this registration has already observed (a `retired`
438
+ // gate refuses above, and the gate's principal binding is unchanged by a records delete), and
439
+ // the (name, owner) pair is authorized fresh under the frozen gate. What a tombstone loses is
440
+ // the stored-owner comparison two branches up — it has no value to compare — and that check is
441
+ // a defence-in-depth read of the same fact the name authority decides.
442
+ newRev = current
429
443
  ? await updateRecordEntry(kv, key, spec, current.revision)
430
444
  : await createRecordEntry(kv, key, spec);
431
445
  }
@@ -456,7 +470,13 @@ export async function registerServiceInstance(kv, args) {
456
470
  // bites on a real restart). A FIRST registration keeps the provisioned epoch (0), so a single
457
471
  // never-restarted instance stays at epoch 0. The advance rides THIS completing reopen only; the
458
472
  // old family was already revoked + verify-evicted in PHASE 2, so no old-epoch authority survives.
459
- const isReRegistration = current !== undefined && current !== null && current.operation === "PUT";
473
+ // A DEREGISTRATION TOMBSTONE COUNTS AS A PRIOR INCARNATION. The question this predicate asks is
474
+ // "did an incarnation of this instanceId exist before me", and a DEL marker answers yes exactly as
475
+ // a live spec does — the deregistration is what removed it. Reading only `PUT` here would let a
476
+ // stop-then-start pair re-register at the PREDECESSOR's epoch, so a predecessor process that
477
+ // outlived its own deregistration would still hold a current-epoch authority. TRUE ABSENCE (never
478
+ // registered) is the only case that keeps the provisioned epoch.
479
+ const isReRegistration = current !== undefined && current !== null;
460
480
  try {
461
481
  if (!(await args.barrier.reopen(token, successorAt(newRev, isReRegistration ? obs.processEpoch + 1 : obs.processEpoch))))
462
482
  throw new Error("the reopen CAS lost its freeze token (a reconciler or newer barrier superseded this one)");
@@ -576,7 +596,76 @@ export async function writeServiceStatus(kv, args) {
576
596
  }
577
597
  return updateRecordEntry(kv, key, status, stored.revision);
578
598
  }
579
- return createRecordEntry(kv, key, status);
599
+ // A DEREGISTRATION TOMBSTONE on the STATUS key is written over too, and for the same reason the
600
+ // spec key's is (see {@link registerServiceInstance}): §13.5 deletes BOTH keys, so a create-only
601
+ // write here would let the spec come back on a restart while the status never could — the
602
+ // instance would register and then be unable to converge, which reads to every scatter as
603
+ // "registered but never live" and to the operator as a manager that starts and does nothing.
604
+ // Still a CAS, pinned to the marker's own revision; only TRUE ABSENCE creates.
605
+ return stored ? updateRecordEntry(kv, key, status, stored.revision) : createRecordEntry(kv, key, status);
606
+ }
607
+ /**
608
+ * DEREGISTER one service instance: the §13.5 explicit deregistration, which is the DELETE of its
609
+ * `svc` spec key (and its status key with it).
610
+ *
611
+ * WHY THIS EXISTS AT ALL. The registry records REGISTRATION, not liveness, and nothing in the model
612
+ * expires a row. An instance whose host dies leaves a record that claims a live state forever, and
613
+ * every class scatter in the space then freezes that slot in and waits out the full deadline for an
614
+ * answer that can never come. Registration therefore needs a way OUT that does not depend on the
615
+ * dead instance's cooperation, and this is it. There is deliberately no automatic sweep behind it:
616
+ * the two callers are an instance removing its OWN row on a clean stop, and an operator naming a
617
+ * hard-dead instance explicitly.
618
+ *
619
+ * ORDER IS PART OF THE CONTRACT: status first, then spec. A reader that catches the pair mid-delete
620
+ * sees "spec without status", which §13.4 already defines (an instance registered but not converged;
621
+ * {@link freezeExpectedSet} skips it) and which {@link readRecord} reads cleanly. The other order
622
+ * produces "status without spec", which is the TORN state readers refuse — a deregistration would
623
+ * hand every concurrent reader a `failed-precondition` for the width of one round trip.
624
+ *
625
+ * BOTH DELETES ARE REVISION-PINNED to what this function just read. A blind delete of a registration
626
+ * is a delete of whatever is there NOW, and what is there now may be a successor that re-registered
627
+ * microseconds ago under the same instanceId — exactly the case a restart produces. A moved key
628
+ * aborts with `superseded` and removes nothing.
629
+ *
630
+ * THE RECOVERY PATH, because a deregistration must never be a one-way door: the record is removed,
631
+ * the §13.1 issuance gate is NOT. The same instance can register again and does so on its next
632
+ * start — {@link registerServiceInstance} writes over the tombstone under a revision-pinned CAS and
633
+ * advances the epoch as it does for any other restart.
634
+ */
635
+ export async function deregisterServiceInstance(kv, args) {
636
+ const iId = assertLifecycleToken(args.instanceId, "instanceId");
637
+ const specKey = recordSpecKey(RECORD_KINDS.svc, [args.endpoint, iId]);
638
+ const statusKey = recordStatusKey(RECORD_KINDS.svc, [args.endpoint, iId]);
639
+ const specEntry = await kv.get(specKey);
640
+ if (!specEntry || specEntry.operation !== "PUT")
641
+ return { removed: false, reason: "absent" };
642
+ const statusEntry = await kv.get(statusKey);
643
+ const casLoss = (e) => e instanceof EpEnvelopeError && e.code === "conflict";
644
+ let statusRevision;
645
+ if (statusEntry && statusEntry.operation === "PUT") {
646
+ try {
647
+ await deleteRecordEntry(kv, statusKey, statusEntry.revision);
648
+ statusRevision = statusEntry.revision;
649
+ }
650
+ catch (e) {
651
+ if (casLoss(e))
652
+ return { removed: false, reason: "superseded" }; // it wrote a status: it is alive
653
+ throw e;
654
+ }
655
+ }
656
+ try {
657
+ await deleteRecordEntry(kv, specKey, specEntry.revision);
658
+ }
659
+ catch (e) {
660
+ // The status is already gone. That is the deliberate direction of this partial state: the
661
+ // instance is absent from every scatter freeze (a spec with no status is not a live member) and
662
+ // its own next registration rewrites both keys. Reported as `superseded` so the caller says so
663
+ // rather than claiming a removal it did not complete.
664
+ if (casLoss(e))
665
+ return { removed: false, reason: "superseded" };
666
+ throw e;
667
+ }
668
+ return { removed: true, specRevision: specEntry.revision, ...(statusRevision !== undefined ? { statusRevision } : {}) };
580
669
  }
581
670
  /** Freeze the request-scoped expected set (§13.5): the LIVE instances of a class from the
582
671
  * service registry at send time — VALIDATED registered spec, status present and caught up to
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-service.js","sourceRoot":"","sources":["../src/endpoint-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-service.js","sourceRoot":"","sources":["../src/endpoint-service.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,34 @@ export interface EpVerbOp {
41
41
  * always equals the broker-authenticated sender principal (§13.3). */
42
42
  name?: string;
43
43
  }
44
+ /** What a liveness probe can establish about ONE frozen instance (§13.5). Only `gone` is an
45
+ * AFFIRMATIVE fact — the broker itself reporting that the instance holds no subscription on its
46
+ * own rail. `live` and `unknown` are handled identically by the gather: they license nothing and
47
+ * the full deadline stands. There is deliberately NO verdict for "its presence entry expired":
48
+ * a lapsed heartbeat is absence of evidence, and reading absence of evidence as death is how a
49
+ * slow correct answer becomes a fast wrong one. */
50
+ export type EpInstanceLiveness = "gone" | "live" | "unknown";
51
+ /**
52
+ * Ask the BROKER whether one instance still holds a subscription on its own `inst` rail (§13.2).
53
+ *
54
+ * A serving incarnation subscribes `ep.inst.<endpoint>.<instanceId>.<command>.>` for every command
55
+ * it serves, so a request published there with a reply-to only the broker can reach either draws
56
+ * the broker's no-responders 503 — an affirmative statement that this instance holds no
57
+ * subscription — or draws nothing at all.
58
+ *
59
+ * NOTHING IS `unknown`, NEVER DEATH. A denied publish, a slow broker, a responder that receives the
60
+ * request and declines to answer, and a perfectly healthy instance are indistinguishable from here,
61
+ * and every one of them must keep the caller waiting. The failure direction is the whole safety
62
+ * argument: because only a 503 says anything, a short probe budget can never turn a live instance
63
+ * into a fast `missing` — it can only fail to speed up a dead one.
64
+ *
65
+ * It rides `describe` because §13.7 makes every endpoint serve it and it carries no effect, and it
66
+ * rides as a CAST: the verdict comes from the transport, not from an answer, so nothing is read and
67
+ * an instance whose describe is broken still reads as present.
68
+ */
69
+ export declare function epProbeInstanceInterest(nc: NatsConnection, space: string, endpoint: string, instanceId: string, caller: EpCaller, opts: {
70
+ deadlineMs: number;
71
+ }): Promise<EpInstanceLiveness>;
44
72
  /** One attributed reply: the structural attribution comes from the reply SUBJECT (§13.2), never
45
73
  * from the body. */
46
74
  export interface EpAttributedReply {
@@ -242,6 +270,16 @@ export type EpRegistrationState = {
242
270
  * - `reconcileDeadlineMs` (optional, default `deadlineMs`): the explicit bound on that post-T read,
243
271
  * named so the single `deadlineMs` is not silently spent twice.
244
272
  * - `lateDrainMs` (optional): the absolute post-T horizon for `late` classification. Omitted → none.
273
+ * - `probeLiveness` (optional): affirmative per-instance liveness, run concurrently with the gather.
274
+ * The gather's only exits are "every frozen slot answered" and the deadline, so a slot that CANNOT
275
+ * answer makes the first unreachable and the deadline is paid in full — every scatter in the space,
276
+ * forever, because the registry has no expiry and a crashed instance never deregisters. This hook
277
+ * supplies the missing fact. It moves the classification point T EARLIER and moves NOTHING else:
278
+ * a slot the broker affirms is gone is still `missing`, still surfaced, still not `complete`.
279
+ * ONLY the verdict `gone` licenses anything; `live`, `unknown`, a throwing hook, and any value
280
+ * outside the closed set all license nothing and leave the full deadline standing. That asymmetry
281
+ * is deliberate and is the safety argument: a broken or lying-quiet probe degrades to exactly
282
+ * today's behavior, never to a fast wrong answer.
245
283
  */
246
284
  export declare function epScatter(nc: NatsConnection, space: string, op: EpVerbOp, opts: {
247
285
  deadlineMs: number;
@@ -249,6 +287,7 @@ export declare function epScatter(nc: NatsConnection, space: string, op: EpVerbO
249
287
  reconcileRegistration: () => Promise<Map<string, EpRegistrationState>>;
250
288
  reconcileDeadlineMs?: number;
251
289
  lateDrainMs?: number;
290
+ probeLiveness?: (instanceId: string) => Promise<EpInstanceLiveness>;
252
291
  }): Promise<EpScatterResult>;
253
292
  /**
254
293
  * Scatter one command to the LIVE class (§13.5), registry-wired end to end: freeze the expected
@@ -264,6 +303,20 @@ export declare function epScatterService(nc: NatsConnection, jsm: JetStreamManag
264
303
  deadlineMs: number;
265
304
  reconcileDeadlineMs?: number;
266
305
  lateDrainMs?: number;
306
+ /** The §13.5 liveness hook, FORWARDED from the caller and never invented here.
307
+ *
308
+ * This function knows the frozen set only AFTER the freeze, so an auto-probe built in here
309
+ * would publish on instance rails the caller may hold no grant for, and a refused publish is
310
+ * invisible to it: the broker's violation lands on the CONNECTION, the probe just times out,
311
+ * and the operation reports `unknown` — the exact "slow" reading of a permission bug this
312
+ * whole change exists to stop. The caller is the only layer that knows which rails its
313
+ * credential carries, so the caller supplies the closure (and, with it, its own budget and its
314
+ * own violation reporting). Omitted ⇒ no probe, and the gather is bit-for-bit the pre-#468
315
+ * deadline behaviour.
316
+ *
317
+ * {@link epProbeInstanceInterest} is the ready-made implementation; a caller pins it to its
318
+ * own grant set. */
319
+ probeLiveness?: (instanceId: string) => Promise<EpInstanceLiveness>;
267
320
  }): Promise<EpScatterResult>;
268
321
  /**
269
322
  * Call one command with the registry-wired currency check (§13.2): on the `one` rail the queue
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-verbs.d.ts","sourceRoot":"","sources":["../src/endpoint-verbs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-verbs.d.ts","sourceRoot":"","sources":["../src/endpoint-verbs.ts"],"names":[],"mappings":"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"}
@@ -99,6 +99,65 @@ function isNoRespondersMsg(msg) {
99
99
  const h = msg.headers;
100
100
  return h != null && (h.code === 503 || h.status === "503");
101
101
  }
102
+ /**
103
+ * Ask the BROKER whether one instance still holds a subscription on its own `inst` rail (§13.2).
104
+ *
105
+ * A serving incarnation subscribes `ep.inst.<endpoint>.<instanceId>.<command>.>` for every command
106
+ * it serves, so a request published there with a reply-to only the broker can reach either draws
107
+ * the broker's no-responders 503 — an affirmative statement that this instance holds no
108
+ * subscription — or draws nothing at all.
109
+ *
110
+ * NOTHING IS `unknown`, NEVER DEATH. A denied publish, a slow broker, a responder that receives the
111
+ * request and declines to answer, and a perfectly healthy instance are indistinguishable from here,
112
+ * and every one of them must keep the caller waiting. The failure direction is the whole safety
113
+ * argument: because only a 503 says anything, a short probe budget can never turn a live instance
114
+ * into a fast `missing` — it can only fail to speed up a dead one.
115
+ *
116
+ * It rides `describe` because §13.7 makes every endpoint serve it and it carries no effect, and it
117
+ * rides as a CAST: the verdict comes from the transport, not from an answer, so nothing is read and
118
+ * an instance whose describe is broken still reads as present.
119
+ */
120
+ export async function epProbeInstanceInterest(nc, space, endpoint, instanceId, caller, opts) {
121
+ const deadlineMs = assertDeadline(opts.deadlineMs);
122
+ const iId = assertLifecycleToken(instanceId, "instanceId");
123
+ const n = nonce();
124
+ const subject = epRequestSubject(space, { route: { mode: "inst", instanceId: iId }, endpoint, command: "describe", caller, nonce: n });
125
+ const env = {
126
+ v: 1, id: nonce(), op: { endpoint, command: "describe" }, class: "ephemeral",
127
+ replyExpected: false, from: { id: `${caller.owner}.${caller.actor}`, name: caller.actor },
128
+ };
129
+ // The SAME reserved sentinel `epCall` uses, for the same reason: no responder holds a publish
130
+ // grant for the `_nr._nr._nr` reply subject (§13.9), so a 503 arriving there is the broker's own
131
+ // control frame and cannot be forged by a recipient that knows the nonce.
132
+ const noRespReplyTo = `${spacePrefix(space)}.ep.reply._nr._nr._nr.${callerTokens(caller).join(".")}.${n}`;
133
+ let sub;
134
+ let timer;
135
+ try {
136
+ return await new Promise((resolve) => {
137
+ timer = setTimeout(() => resolve("unknown"), deadlineMs);
138
+ // A PROBE MUST NEVER BE THE REASON A PROCESS IS STILL RUNNING. Against a LIVE instance no
139
+ // answer ever comes back — the request is a cast and §13.5 forbids the responder replying to
140
+ // one — so this timer runs its full budget on every healthy instance, every time. Wired into
141
+ // `cotal ps` that was measured at 4.0 extra seconds AFTER the last row was printed (12.8s
142
+ // with the probe against 8.8s without it, on a healthy two-manager mesh): the gather had long
143
+ // since finished, and the only verdict that changes anything is `gone`, which a caller who
144
+ // has already gathered can no longer use. Unref makes the timer stop holding the loop open
145
+ // WITHOUT changing the probe: it still settles `unknown` at the budget for anyone still
146
+ // waiting on it, because the connection this needs is itself an open handle, and a caller
147
+ // still using that connection is therefore still running.
148
+ timer.unref?.();
149
+ sub = nc.subscribe(noRespReplyTo, {
150
+ callback: (err, msg) => { resolve(err === null && isNoRespondersMsg(msg) ? "gone" : "unknown"); },
151
+ });
152
+ nc.publish(subject, new TextEncoder().encode(JSON.stringify(env)), { reply: noRespReplyTo });
153
+ });
154
+ }
155
+ finally {
156
+ sub?.unsubscribe();
157
+ if (timer !== undefined)
158
+ clearTimeout(timer);
159
+ }
160
+ }
102
161
  /** Race a caller-supplied read against a bounded budget so a never-settling hook cannot exceed the
103
162
  * operation deadline (SPEC 13.5: deadline mandatory). Clears its timer on either outcome. */
104
163
  async function raceBounded(read, ms, what, details) {
@@ -430,6 +489,16 @@ export function epWatchEvents(nc, space, filter, handlers) {
430
489
  * - `reconcileDeadlineMs` (optional, default `deadlineMs`): the explicit bound on that post-T read,
431
490
  * named so the single `deadlineMs` is not silently spent twice.
432
491
  * - `lateDrainMs` (optional): the absolute post-T horizon for `late` classification. Omitted → none.
492
+ * - `probeLiveness` (optional): affirmative per-instance liveness, run concurrently with the gather.
493
+ * The gather's only exits are "every frozen slot answered" and the deadline, so a slot that CANNOT
494
+ * answer makes the first unreachable and the deadline is paid in full — every scatter in the space,
495
+ * forever, because the registry has no expiry and a crashed instance never deregisters. This hook
496
+ * supplies the missing fact. It moves the classification point T EARLIER and moves NOTHING else:
497
+ * a slot the broker affirms is gone is still `missing`, still surfaced, still not `complete`.
498
+ * ONLY the verdict `gone` licenses anything; `live`, `unknown`, a throwing hook, and any value
499
+ * outside the closed set all license nothing and leave the full deadline standing. That asymmetry
500
+ * is deliberate and is the safety argument: a broken or lying-quiet probe degrades to exactly
501
+ * today's behavior, never to a fast wrong answer.
433
502
  */
434
503
  export async function epScatter(nc, space, op, opts) {
435
504
  const deadlineMs = assertDeadline(opts.deadlineMs);
@@ -457,6 +526,7 @@ export async function epScatter(nc, space, op, opts) {
457
526
  const terminal = new Set(); // frozen slots with a VALID frozen-epoch reply (drives early completion)
458
527
  const seen = new Set(); // "(instanceId,epoch)" pairs already classified non-invalid (drives §13.5 duplicate)
459
528
  const responded = new Set(); // frozen slots that produced ANY reply (live)
529
+ const gone = new Set(); // frozen slots the BROKER affirmed hold no subscription
460
530
  const regChurned = new Set();
461
531
  const failMsg = (e) => (e instanceof Error ? e.message : String(e));
462
532
  let respondedAtDeadline; // `responded` snapshotted at the classification point
@@ -520,30 +590,73 @@ export async function epScatter(nc, space, op, opts) {
520
590
  seen.add(key);
521
591
  return terminal.size === frozen.size;
522
592
  };
593
+ // NOTHING outstanding can still answer: every frozen slot has either produced a valid reply or been
594
+ // affirmed gone by the broker. Checked on BOTH events that can make it true — a verdict landing and
595
+ // a reply landing — because the last thing to settle is as often the live peer's slow answer as it
596
+ // is the corpse's verdict, and a check that ran only on verdicts would leave the common case (one
597
+ // corpse affirmed immediately, one live instance answering a second later) paying the full deadline.
598
+ const settled = () => {
599
+ for (const id of frozen.keys())
600
+ if (!terminal.has(id) && !gone.has(id))
601
+ return false;
602
+ return true;
603
+ };
523
604
  let sub;
524
- // Phase 1 — gather to the classification point T = min(all-valid, deadline). NO drain here; the drain
525
- // is a later observational phase so it can never move the classification.
605
+ // Phase 1 — gather to the classification point T = min(all-valid, all-accounted-for, deadline). NO
606
+ // drain here; the drain is a later observational phase so it can never move the classification.
526
607
  await new Promise((resolve) => {
608
+ let ended = false;
527
609
  const finishAtT = () => { if (respondedAtDeadline === undefined)
528
610
  respondedAtDeadline = new Set(responded); };
529
- const timer = setTimeout(() => { deadlinePassed = true; finishAtT(); resolve(); }, deadlineMs);
611
+ // `incomplete` marks the two exits at which some frozen slot did NOT answer, so the post-T rail
612
+ // stays open for a straggler and classifies it `late` rather than dropping it. Early completion
613
+ // (every slot answered) is not one of them: there is nothing left to be late.
614
+ const finish = (incomplete) => {
615
+ if (ended)
616
+ return;
617
+ ended = true;
618
+ if (incomplete)
619
+ deadlinePassed = true;
620
+ finishAtT();
621
+ clearTimeout(timer);
622
+ resolve();
623
+ };
624
+ const timer = setTimeout(() => finish(true), deadlineMs);
530
625
  sub = nc.subscribe(replySubjectFor(space, op.caller, req.n), {
531
626
  callback: (err, msg) => {
532
627
  if (err) {
533
628
  subError ??= err;
534
- finishAtT();
535
- clearTimeout(timer);
536
- resolve();
629
+ finish(false);
537
630
  return;
538
631
  } // fail loud, never fake `missing`
539
- if (handle(msg.subject, msg.data)) {
540
- finishAtT();
541
- clearTimeout(timer);
542
- resolve();
543
- }
632
+ if (handle(msg.subject, msg.data))
633
+ finish(false); // every slot answered: complete, nothing can be late
634
+ else if (settled())
635
+ finish(true); // the rest are affirmed gone: T is now
544
636
  },
545
637
  });
546
638
  nc.publish(req.subject, req.body);
639
+ // AFFIRMATIVE liveness, concurrent with the gather and never gating it. A verdict can only end
640
+ // the gather EARLY; it can never extend it, and a probe still in flight at the deadline is
641
+ // simply irrelevant by then.
642
+ if (opts.probeLiveness !== undefined)
643
+ for (const instanceId of frozen.keys())
644
+ void (async () => {
645
+ let verdict;
646
+ // A probe that FAILED established nothing. Same rule as the verdicts below and for the
647
+ // same reason: only `gone` is evidence, everything else leaves the deadline standing.
648
+ try {
649
+ verdict = await opts.probeLiveness(instanceId);
650
+ }
651
+ catch {
652
+ return;
653
+ }
654
+ if (verdict !== "gone" || ended)
655
+ return;
656
+ gone.add(instanceId);
657
+ if (settled())
658
+ finish(true); // one corpse among live peers still waits for them
659
+ })();
547
660
  });
548
661
  let drainTimer;
549
662
  try {
@@ -654,7 +767,10 @@ export async function epScatterService(nc, jsm, space, op, opts) {
654
767
  const remaining = deadlineMs - (Date.now() - started);
655
768
  if (remaining <= 0)
656
769
  throw new EpEnvelopeError("deadline-exceeded", `the scatter freeze for ${op.endpoint} consumed the whole ${deadlineMs}ms budget; no time left to gather (SPEC 13.5)`, [registryReadDetail(op)]);
657
- return epScatter(nc, space, op, { ...opts, deadlineMs: remaining, expected, reconcileRegistration: registrationReconciler(jsm, space, op.endpoint, expected) });
770
+ return epScatter(nc, space, op, {
771
+ ...opts, deadlineMs: remaining, expected,
772
+ reconcileRegistration: registrationReconciler(jsm, space, op.endpoint, expected),
773
+ });
658
774
  }
659
775
  /**
660
776
  * Call one command with the registry-wired currency check (§13.2): on the `one` rail the queue