instar 1.3.1074 → 1.3.1075
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/data/standards-registry.meta.json +1 -1
- package/dist/messaging/SpawnRequestManager.d.ts.map +1 -1
- package/dist/messaging/SpawnRequestManager.js +176 -88
- package/dist/messaging/SpawnRequestManager.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/src/data/standards-registry.meta.json +1 -1
- package/upgrades/1.3.1075.md +34 -0
- package/upgrades/side-effects/spawn-transient-refusal-class-guard.md +157 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpawnRequestManager.d.ts","sourceRoot":"","sources":["../../src/messaging/SpawnRequestManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SpawnRequestManager.d.ts","sourceRoot":"","sources":["../../src/messaging/SpawnRequestManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAuBhD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAI1F;AAID,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,eAAe,GAAG,qBAAqB,CAAC;IACtD;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GACzB,qBAAqB,GACrB,eAAe,GACf,2BAA2B,GAC3B,iBAAiB,GACjB,aAAa,GACb,cAAc,GACd,kBAAkB,GAClB,WAAW,CAAC;AAEhB;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC5G;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7G,yFAAyF;AACzF,qBAAa,iBAAkB,SAAQ,KAAK;aACG,KAAK,EAAE,iBAAiB;gBAAzD,OAAO,EAAE,MAAM,EAAkB,KAAK,EAAE,iBAAiB;CAItE;AAQD,MAAM,WAAW,yBAAyB;IACxC;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,OAAO,EAAE,CAAC;IACnC;;;;;;OAMG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACvC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,WAAW,CAAC,EAAE,eAAe,GAAG,qBAAqB,CAAC;QACtD;uFAC+E;QAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;kEAC0D;QAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB;;uEAE+D;QAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,KAAK,OAAO,CAAC,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,+EAA+E;IAC/E,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC;IACrC;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACjF,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACvD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA4FD,qBAAa,mBAAmB;;IA0C9B,8DAA8D;IAC9D,MAAM,CAAC,QAAQ,CAAC,oBAAoB,MAAM;IAE1C,+CAA+C;IAC/C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,SAAe;gBA0BnC,MAAM,EAAE,yBAAyB;IAO7C;;;;;;;OAOG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAuF1C;;;;;;;;OAQG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAcvC,8EAA8E;IAC9E,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAoDjD;;;OAGG;IACG,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAgK3D;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAgK9D,+EAA+E;IAC/E,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAuDnC,iEAAiE;IACjE,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IASrC,6CAA6C;IAC7C,SAAS,IAAI;QACX,SAAS,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACzD,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACxD,SAAS,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,mBAAmB,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACnF;IAsCD;;;;;;OAMG;IACH,cAAc,IAAI,MAAM;IAMxB;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAeb;;;OAGG;IACH,OAAO,IAAI,IAAI;IAUf;;;;;;;;;;;;;;;OAeG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAkEhC,gDAAgD;IAChD,6BAA6B,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IAI5D;;;;OAIG;IACH,gBAAgB,IAAI;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,yBAAyB,EAAE,MAAM,CAAC;QAClC,WAAW,EAAE,MAAM,CAAC;KACrB;IAcD;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,KAAK,EAAE;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;KACpC,GAAG;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IA4BxF,oCAAoC;IACpC,KAAK,IAAI,IAAI;CAad"}
|
|
@@ -150,6 +150,10 @@ export class SpawnRequestManager {
|
|
|
150
150
|
* Used by DRR's age-boost.
|
|
151
151
|
*/
|
|
152
152
|
#pendingMessages = new Map();
|
|
153
|
+
/** Serialize launch attempts per agent so one backlog cannot be delivered twice. */
|
|
154
|
+
#spawnInflightByAgent = new Set();
|
|
155
|
+
/** Arrival order shared by queued and in-flight-reserved payloads. */
|
|
156
|
+
#nextQueueSequence = 0;
|
|
153
157
|
/** Max queued messages per agent before oldest are dropped */
|
|
154
158
|
static MAX_QUEUED_PER_AGENT = 10;
|
|
155
159
|
/** Max age for queued messages (10 minutes) */
|
|
@@ -299,7 +303,10 @@ export class SpawnRequestManager {
|
|
|
299
303
|
/** Effective per-agent queue cap, accounting for soft-limiter degradation. */
|
|
300
304
|
effectiveMaxQueuedPerAgent(agent) {
|
|
301
305
|
if (this.isInfraDegraded(agent)) {
|
|
302
|
-
|
|
306
|
+
// A zero cap makes `while (queue.length >= cap)` non-terminating. Keep
|
|
307
|
+
// degraded admission bounded but live, even for a stale constructor
|
|
308
|
+
// config written before updateConfig began rejecting zero.
|
|
309
|
+
return Math.max(1, this.#config.degradedMaxQueuedPerAgent ?? DEGRADED_MAX_QUEUED_PER_AGENT_DEFAULT);
|
|
303
310
|
}
|
|
304
311
|
return _a.MAX_QUEUED_PER_AGENT;
|
|
305
312
|
}
|
|
@@ -308,12 +315,48 @@ export class SpawnRequestManager {
|
|
|
308
315
|
this.#consecutiveSpawnFailures.delete(agent);
|
|
309
316
|
this.#penaltyUntil.delete(agent);
|
|
310
317
|
}
|
|
318
|
+
/**
|
|
319
|
+
* The single construction path for a retryable refusal.
|
|
320
|
+
*
|
|
321
|
+
* `retryAfterMs` means "not now", so returning it without first preserving
|
|
322
|
+
* the refused payload is a data-loss bug. Keeping construction here makes
|
|
323
|
+
* that postcondition class-wide: the structural guard test rejects any
|
|
324
|
+
* retryable-result object created elsewhere in this class.
|
|
325
|
+
*
|
|
326
|
+
* Queued backlog is not handled here: evaluate snapshots it without removal
|
|
327
|
+
* and commits that exact snapshot only after spawnSession reports delivery.
|
|
328
|
+
* A rejection therefore leaves the backlog's age and ordering untouched.
|
|
329
|
+
*/
|
|
330
|
+
#refuseTransiently(request, reason, retryAfterMs, reservedPayload) {
|
|
331
|
+
const agent = request.requester.agent;
|
|
332
|
+
if (reservedPayload) {
|
|
333
|
+
this.#admitQueuedMessage(agent, reservedPayload);
|
|
334
|
+
}
|
|
335
|
+
else if (request.context) {
|
|
336
|
+
this.#queueMessage(agent, request.context, request.pendingMessages?.[0]);
|
|
337
|
+
}
|
|
338
|
+
return {
|
|
339
|
+
approved: false,
|
|
340
|
+
reason,
|
|
341
|
+
retryAfterMs,
|
|
342
|
+
};
|
|
343
|
+
}
|
|
311
344
|
// ── Public API ──────────────────────────────────────────────
|
|
312
345
|
/**
|
|
313
346
|
* Evaluate and potentially approve a spawn request.
|
|
314
347
|
* Returns the result with approval status and session info if spawned.
|
|
315
348
|
*/
|
|
316
349
|
async evaluate(request) {
|
|
350
|
+
return this.#evaluateGuarded(request);
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Typed implementation boundary for the class-level preservation invariant.
|
|
354
|
+
*
|
|
355
|
+
* A retryable result cannot satisfy this return type unless it came from
|
|
356
|
+
* `#refuseTransiently`, whose private brand certifies use of the preservation
|
|
357
|
+
* funnel.
|
|
358
|
+
*/
|
|
359
|
+
async #evaluateGuarded(request) {
|
|
317
360
|
const agent = request.requester.agent;
|
|
318
361
|
// §4.3: payload byte-size cap. Refuse oversized envelopes at admission so
|
|
319
362
|
// bulk content can't hog drain-tick budget. Measured on the UTF-8 byte
|
|
@@ -331,14 +374,7 @@ export class SpawnRequestManager {
|
|
|
331
374
|
// §4.2: single-source cooldown check (covers cooldown AND penalty).
|
|
332
375
|
const remainingMs = this.cooldownRemainingMs(agent);
|
|
333
376
|
if (remainingMs > 0) {
|
|
334
|
-
|
|
335
|
-
this.#queueMessage(agent, request.context, request.pendingMessages?.[0]);
|
|
336
|
-
}
|
|
337
|
-
return {
|
|
338
|
-
approved: false,
|
|
339
|
-
reason: `Cooldown: ${Math.ceil(remainingMs / 1000)}s remaining before next spawn for ${agent}`,
|
|
340
|
-
retryAfterMs: remainingMs,
|
|
341
|
-
};
|
|
377
|
+
return this.#refuseTransiently(request, `Cooldown: ${Math.ceil(remainingMs / 1000)}s remaining before next spawn for ${agent}`, remainingMs);
|
|
342
378
|
}
|
|
343
379
|
// Check session limits — prefer the live accessor over the constructor
|
|
344
380
|
// snapshot so config reloads (e.g. operator raising sessions.maxSessions)
|
|
@@ -350,38 +386,13 @@ export class SpawnRequestManager {
|
|
|
350
386
|
: this.#config.maxSessions;
|
|
351
387
|
if (activeSessions.length >= liveMaxSessions) {
|
|
352
388
|
if (request.priority !== 'critical' && request.priority !== 'high') {
|
|
353
|
-
|
|
354
|
-
// session cap clears as running sessions finish — this branch sets
|
|
355
|
-
// retryAfterMs itself — so the content must survive the wait.
|
|
356
|
-
if (request.context) {
|
|
357
|
-
this.#queueMessage(agent, request.context, request.pendingMessages?.[0]);
|
|
358
|
-
}
|
|
359
|
-
return {
|
|
360
|
-
approved: false,
|
|
361
|
-
reason: `Session limit reached (${activeSessions.length}/${liveMaxSessions}). Priority ${request.priority} insufficient to override.`,
|
|
362
|
-
retryAfterMs: 60_000,
|
|
363
|
-
};
|
|
389
|
+
return this.#refuseTransiently(request, `Session limit reached (${activeSessions.length}/${liveMaxSessions}). Priority ${request.priority} insufficient to override.`, 60_000);
|
|
364
390
|
}
|
|
365
391
|
}
|
|
366
|
-
// Check memory pressure.
|
|
367
|
-
//
|
|
368
|
-
// very branch sets retryAfterMs — and the content must survive it. Before
|
|
369
|
-
// this, memory pressure was the ONLY transient-pressure denial that
|
|
370
|
-
// destroyed the payload, so an A2A dispatch arriving during a pressure
|
|
371
|
-
// window was silently deleted while both the caller (`handled: true` from
|
|
372
|
-
// ThreadlineRouter) and the remote sender (`delivered: true`) recorded
|
|
373
|
-
// success. Observed live 2026-07-29: 40 such denials on one machine in a
|
|
374
|
-
// day, oscillating across the threshold every 30-80s, each one a lost
|
|
375
|
-
// inbound message.
|
|
392
|
+
// Check memory pressure. The refusal funnel preserves the payload while
|
|
393
|
+
// the transient pressure condition clears.
|
|
376
394
|
if (this.#config.isMemoryPressureHigh?.()) {
|
|
377
|
-
|
|
378
|
-
this.#queueMessage(agent, request.context, request.pendingMessages?.[0]);
|
|
379
|
-
}
|
|
380
|
-
return {
|
|
381
|
-
approved: false,
|
|
382
|
-
reason: 'Memory pressure too high for new session',
|
|
383
|
-
retryAfterMs: 120_000,
|
|
384
|
-
};
|
|
395
|
+
return this.#refuseTransiently(request, 'Memory pressure too high for new session', 120_000);
|
|
385
396
|
}
|
|
386
397
|
// Subscription-quota gate (S1) — only wired when the subscription-path
|
|
387
398
|
// reroute is active, so a peer-driven spawn can't exhaust the operator's
|
|
@@ -390,35 +401,31 @@ export class SpawnRequestManager {
|
|
|
390
401
|
if (this.#config.shouldSpawnSession) {
|
|
391
402
|
const quota = this.#config.shouldSpawnSession(request.priority);
|
|
392
403
|
if (!quota.allowed) {
|
|
393
|
-
|
|
394
|
-
this.#queueMessage(agent, request.context, request.pendingMessages?.[0]);
|
|
395
|
-
}
|
|
396
|
-
return {
|
|
397
|
-
approved: false,
|
|
398
|
-
reason: `Subscription quota gate: ${quota.reason}`,
|
|
399
|
-
retryAfterMs: 120_000,
|
|
400
|
-
};
|
|
404
|
+
return this.#refuseTransiently(request, `Subscription quota gate: ${quota.reason}`, 120_000);
|
|
401
405
|
}
|
|
402
406
|
}
|
|
407
|
+
// Cooldown can legitimately be configured to zero, so it cannot serve as
|
|
408
|
+
// the concurrency lock. Serialize per agent explicitly: otherwise two
|
|
409
|
+
// overlapping launches can snapshot and deliver the same backlog.
|
|
410
|
+
if (this.#spawnInflightByAgent.has(agent)) {
|
|
411
|
+
return this.#refuseTransiently(request, `Spawn already in flight for ${agent}`, 1_000);
|
|
412
|
+
}
|
|
413
|
+
// Stamp the current payload before the first await, but do not enqueue it
|
|
414
|
+
// yet: it is already present in the launch prompt. If launch fails, the
|
|
415
|
+
// exact reserved object is inserted by sequence, preserving both its
|
|
416
|
+
// original TTL and its position ahead of later concurrent arrivals.
|
|
417
|
+
const currentReservation = request.context
|
|
418
|
+
? this.#makeQueuedMessage(request.context, request.pendingMessages?.[0])
|
|
419
|
+
: undefined;
|
|
420
|
+
this.#spawnInflightByAgent.add(agent);
|
|
403
421
|
// §4.2: failure-suppressive reservation. Stamp `lastSpawnByAgent` BEFORE
|
|
404
422
|
// the async spawn, and do NOT roll back on failure. A peer that triggers
|
|
405
423
|
// fast-failing spawns still pays the cooldown.
|
|
406
424
|
this.#lastSpawnByAgent.set(agent, this.#nowFn());
|
|
407
|
-
|
|
408
|
-
// empties the queue here because the prompt has to carry the payloads, so a
|
|
409
|
-
// spawn that throws destroys them. That is a real defect, but the obvious fix
|
|
410
|
-
// — put them back in the catch — is UNSAFE against the real `spawnSession`
|
|
411
|
-
// implementation: SessionManager.spawnSession creates the live tmux session
|
|
412
|
-
// WITH the prompt, and only afterwards calls state.saveSession() outside any
|
|
413
|
-
// try/catch. A throw from that bookkeeping step means the payloads were
|
|
414
|
-
// already DELIVERED, so re-queueing them would deliver the same instruction
|
|
415
|
-
// to a second live session. Restoring here would trade a rare lost message
|
|
416
|
-
// for a rare duplicated one, which is worse — a duplicate can act twice.
|
|
417
|
-
// The prerequisite is making spawnSession stop reporting failure once the
|
|
418
|
-
// session is live and holding the prompt. Tracked: CMT-1114.
|
|
425
|
+
let queuedSnapshot = [];
|
|
419
426
|
try {
|
|
420
|
-
|
|
421
|
-
const prompt = this.#buildSpawnPrompt(request,
|
|
427
|
+
queuedSnapshot = this.#snapshotQueue(agent);
|
|
428
|
+
const prompt = this.#buildSpawnPrompt(request, queuedSnapshot);
|
|
422
429
|
const spawned = await this.#config.spawnSession(prompt, {
|
|
423
430
|
model: request.suggestedModel,
|
|
424
431
|
maxDurationMinutes: request.suggestedMaxDuration,
|
|
@@ -433,6 +440,10 @@ export class SpawnRequestManager {
|
|
|
433
440
|
// Undefined on every non-warm spawn → headless behavior unchanged.
|
|
434
441
|
interactive: request.interactive,
|
|
435
442
|
});
|
|
443
|
+
// spawnSession's contract is now delivery-truthful: resolution means the
|
|
444
|
+
// prompt reached a live session. Remove only the entries in this prompt;
|
|
445
|
+
// messages arriving while spawnSession was in flight remain queued.
|
|
446
|
+
this.#commitQueueSnapshot(agent, queuedSnapshot);
|
|
436
447
|
// Accept both the legacy bare-id return and the {sessionId, tmuxSession}
|
|
437
448
|
// object form. The tmuxSession (when provided) is forwarded so callers
|
|
438
449
|
// (spawnNewThread) persist the REAL tmux name as the resume entry's
|
|
@@ -453,14 +464,10 @@ export class SpawnRequestManager {
|
|
|
453
464
|
catch (err) {
|
|
454
465
|
const cause = this.#classifyFailure(err);
|
|
455
466
|
this.#applyFailureAttribution(agent, cause);
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
approved: false,
|
|
461
|
-
reason: `Spawn failed (${cause}): ${err instanceof Error ? err.message : 'unknown error'}`,
|
|
462
|
-
retryAfterMs: 30_000,
|
|
463
|
-
};
|
|
467
|
+
return this.#refuseTransiently(request, `Spawn failed (${cause}): ${err instanceof Error ? err.message : 'unknown error'}`, 30_000, currentReservation);
|
|
468
|
+
}
|
|
469
|
+
finally {
|
|
470
|
+
this.#spawnInflightByAgent.delete(agent);
|
|
464
471
|
}
|
|
465
472
|
}
|
|
466
473
|
/**
|
|
@@ -518,6 +525,25 @@ export class SpawnRequestManager {
|
|
|
518
525
|
* global cap. (Per-agent truncation still queues the new entry.)
|
|
519
526
|
*/
|
|
520
527
|
#queueMessage(agent, context, threadId) {
|
|
528
|
+
return this.#admitQueuedMessage(agent, this.#makeQueuedMessage(context, threadId));
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* Construct queue metadata at message arrival rather than eventual
|
|
532
|
+
* admission. In-flight payloads use this to retain their original TTL and
|
|
533
|
+
* order if the launch fails after later messages have arrived.
|
|
534
|
+
*/
|
|
535
|
+
#makeQueuedMessage(context, threadId) {
|
|
536
|
+
return {
|
|
537
|
+
context,
|
|
538
|
+
threadId,
|
|
539
|
+
receivedAt: this.#nowFn(),
|
|
540
|
+
envelopeHash: computeEnvelopeHash({ context, threadId }),
|
|
541
|
+
drainAttempts: 0,
|
|
542
|
+
sequence: this.#nextQueueSequence++,
|
|
543
|
+
};
|
|
544
|
+
}
|
|
545
|
+
/** Admit a fully stamped payload while preserving monotonic arrival order. */
|
|
546
|
+
#admitQueuedMessage(agent, message) {
|
|
521
547
|
// §4.3 global cap: refuse new enqueues when total queued is at the
|
|
522
548
|
// global limit. Computed before any local mutation.
|
|
523
549
|
const maxGlobal = this.#config.maxGlobalQueued ?? DEFAULT_MAX_GLOBAL_QUEUED;
|
|
@@ -525,12 +551,37 @@ export class SpawnRequestManager {
|
|
|
525
551
|
for (const q of this.#pendingMessages.values())
|
|
526
552
|
totalQueued += q.length;
|
|
527
553
|
if (totalQueued >= maxGlobal) {
|
|
528
|
-
//
|
|
529
|
-
//
|
|
530
|
-
//
|
|
531
|
-
//
|
|
532
|
-
//
|
|
533
|
-
|
|
554
|
+
// A launch payload is stamped before its await and may be admitted only
|
|
555
|
+
// after a later in-flight refusal has filled the final slot. Preserve the
|
|
556
|
+
// bounded queue's chronological policy: an earlier reserved payload
|
|
557
|
+
// displaces the globally newest later arrival; an actually newer payload
|
|
558
|
+
// remains refused as before.
|
|
559
|
+
let newest;
|
|
560
|
+
for (const [queuedAgent, queued] of this.#pendingMessages) {
|
|
561
|
+
for (const entry of queued) {
|
|
562
|
+
if (!newest || entry.sequence > newest.entry.sequence) {
|
|
563
|
+
newest = { agent: queuedAgent, entry };
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
if (newest && message.sequence < newest.entry.sequence) {
|
|
568
|
+
const newestQueue = this.#pendingMessages.get(newest.agent);
|
|
569
|
+
const newestIndex = newestQueue?.indexOf(newest.entry) ?? -1;
|
|
570
|
+
if (newestQueue && newestIndex >= 0) {
|
|
571
|
+
newestQueue.splice(newestIndex, 1);
|
|
572
|
+
if (newestQueue.length === 0) {
|
|
573
|
+
this.#pendingMessages.delete(newest.agent);
|
|
574
|
+
}
|
|
575
|
+
this.#truncated.add(newest.agent);
|
|
576
|
+
totalQueued--;
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
if (totalQueued >= maxGlobal) {
|
|
581
|
+
// Mark the agent truncated before refusing. The preservation funnel does
|
|
582
|
+
// not surface this internal boolean, so without the marker a global-cap
|
|
583
|
+
// refusal would leave no trace. The per-agent cap below already sets it;
|
|
584
|
+
// this makes the global cap match.
|
|
534
585
|
this.#truncated.add(agent);
|
|
535
586
|
return false;
|
|
536
587
|
}
|
|
@@ -541,12 +592,19 @@ export class SpawnRequestManager {
|
|
|
541
592
|
}
|
|
542
593
|
const now = this.#nowFn();
|
|
543
594
|
const maxAge = _a.QUEUE_MAX_AGE_MS;
|
|
595
|
+
queue.sort((a, b) => a.sequence - b.sequence);
|
|
544
596
|
while (queue.length > 0 && now - queue[0].receivedAt > maxAge) {
|
|
545
597
|
queue.shift();
|
|
546
598
|
}
|
|
547
599
|
// §4.2 infra soft limiter + §4.3 truncation marker.
|
|
548
600
|
// Per-agent cap (degraded if soft-limited). Drop oldest on overflow.
|
|
549
601
|
const cap = this.effectiveMaxQueuedPerAgent(agent);
|
|
602
|
+
if (cap <= 0) {
|
|
603
|
+
// Defensive backstop for future cap sources; effective config currently
|
|
604
|
+
// floors degraded admission at one.
|
|
605
|
+
this.#truncated.add(agent);
|
|
606
|
+
return false;
|
|
607
|
+
}
|
|
550
608
|
let truncatedAny = false;
|
|
551
609
|
while (queue.length >= cap) {
|
|
552
610
|
queue.shift();
|
|
@@ -554,21 +612,22 @@ export class SpawnRequestManager {
|
|
|
554
612
|
}
|
|
555
613
|
if (truncatedAny)
|
|
556
614
|
this.#truncated.add(agent);
|
|
557
|
-
queue.push(
|
|
558
|
-
|
|
559
|
-
threadId,
|
|
560
|
-
receivedAt: now,
|
|
561
|
-
envelopeHash: computeEnvelopeHash({ context, threadId }),
|
|
562
|
-
drainAttempts: 0,
|
|
563
|
-
});
|
|
615
|
+
queue.push(message);
|
|
616
|
+
queue.sort((a, b) => a.sequence - b.sequence);
|
|
564
617
|
return true;
|
|
565
618
|
}
|
|
566
619
|
/** §4.3: returns true if this agent's queue was truncated since last drain. */
|
|
567
620
|
isTruncated(agent) {
|
|
568
621
|
return this.#truncated.has(agent);
|
|
569
622
|
}
|
|
570
|
-
/**
|
|
571
|
-
|
|
623
|
+
/**
|
|
624
|
+
* Snapshot the currently valid queue without removing it.
|
|
625
|
+
*
|
|
626
|
+
* The snapshot stays reserved while spawnSession is in flight. This prevents
|
|
627
|
+
* another sender from consuming the temporarily freed global capacity and
|
|
628
|
+
* preserves each entry's original TTL/order if launch fails.
|
|
629
|
+
*/
|
|
630
|
+
#snapshotQueue(agent) {
|
|
572
631
|
const queue = this.#pendingMessages.get(agent);
|
|
573
632
|
if (!queue || queue.length === 0) {
|
|
574
633
|
this.#truncated.delete(agent); // empty queue can't claim "truncated"
|
|
@@ -577,9 +636,36 @@ export class SpawnRequestManager {
|
|
|
577
636
|
const now = this.#nowFn();
|
|
578
637
|
const maxAge = _a.QUEUE_MAX_AGE_MS;
|
|
579
638
|
const valid = queue.filter(m => now - m.receivedAt < maxAge);
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
639
|
+
if (valid.length === 0) {
|
|
640
|
+
this.#pendingMessages.delete(agent);
|
|
641
|
+
this.#truncated.delete(agent);
|
|
642
|
+
return [];
|
|
643
|
+
}
|
|
644
|
+
if (valid.length !== queue.length) {
|
|
645
|
+
this.#pendingMessages.set(agent, valid);
|
|
646
|
+
}
|
|
647
|
+
return [...valid];
|
|
648
|
+
}
|
|
649
|
+
/**
|
|
650
|
+
* Commit exactly the queue entries included in a delivered prompt.
|
|
651
|
+
*
|
|
652
|
+
* Object identity is deliberate: entries appended while spawnSession awaited
|
|
653
|
+
* may carry identical content/hash but represent separate inbound messages.
|
|
654
|
+
*/
|
|
655
|
+
#commitQueueSnapshot(agent, delivered) {
|
|
656
|
+
if (delivered.length === 0)
|
|
657
|
+
return;
|
|
658
|
+
const queue = this.#pendingMessages.get(agent);
|
|
659
|
+
if (!queue || queue.length === 0)
|
|
660
|
+
return;
|
|
661
|
+
const deliveredEntries = new Set(delivered);
|
|
662
|
+
const remaining = queue.filter((entry) => !deliveredEntries.has(entry));
|
|
663
|
+
if (remaining.length === 0) {
|
|
664
|
+
this.#pendingMessages.delete(agent);
|
|
665
|
+
this.#truncated.delete(agent);
|
|
666
|
+
return;
|
|
667
|
+
}
|
|
668
|
+
this.#pendingMessages.set(agent, remaining);
|
|
583
669
|
}
|
|
584
670
|
/** Get count of queued messages for an agent (for monitoring) */
|
|
585
671
|
getQueuedCount(agent) {
|
|
@@ -762,7 +848,7 @@ export class SpawnRequestManager {
|
|
|
762
848
|
maxDrainsPerTick: this.#config.maxDrainsPerTick ?? DRAIN_MAX_PER_TICK_DEFAULT,
|
|
763
849
|
maxEnvelopeBytes: this.#config.maxEnvelopeBytes ?? DEFAULT_MAX_ENVELOPE_BYTES,
|
|
764
850
|
maxGlobalQueued: this.#config.maxGlobalQueued ?? DEFAULT_MAX_GLOBAL_QUEUED,
|
|
765
|
-
degradedMaxQueuedPerAgent: this.#config.degradedMaxQueuedPerAgent ?? DEGRADED_MAX_QUEUED_PER_AGENT_DEFAULT,
|
|
851
|
+
degradedMaxQueuedPerAgent: Math.max(1, this.#config.degradedMaxQueuedPerAgent ?? DEGRADED_MAX_QUEUED_PER_AGENT_DEFAULT),
|
|
766
852
|
drainTickMs: this.getDrainTickMs(),
|
|
767
853
|
};
|
|
768
854
|
}
|
|
@@ -784,7 +870,7 @@ export class SpawnRequestManager {
|
|
|
784
870
|
['maxDrainsPerTick', v => v >= 1 && Number.isFinite(v) && Number.isInteger(v)],
|
|
785
871
|
['maxEnvelopeBytes', v => v >= 1 && Number.isFinite(v) && Number.isInteger(v)],
|
|
786
872
|
['maxGlobalQueued', v => v >= 0 && Number.isFinite(v) && Number.isInteger(v)],
|
|
787
|
-
['degradedMaxQueuedPerAgent', v => v >=
|
|
873
|
+
['degradedMaxQueuedPerAgent', v => v >= 1 && Number.isFinite(v) && Number.isInteger(v)],
|
|
788
874
|
];
|
|
789
875
|
for (const [k, ok] of validators) {
|
|
790
876
|
const v = patch[k];
|
|
@@ -820,6 +906,8 @@ export class SpawnRequestManager {
|
|
|
820
906
|
this.#drainAttempts.clear();
|
|
821
907
|
this.#infraFailureWindow.clear();
|
|
822
908
|
this.#truncated.clear();
|
|
909
|
+
this.#spawnInflightByAgent.clear();
|
|
910
|
+
this.#nextQueueSequence = 0;
|
|
823
911
|
}
|
|
824
912
|
}
|
|
825
913
|
_a = SpawnRequestManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpawnRequestManager.js","sourceRoot":"","sources":["../../src/messaging/SpawnRequestManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SpawnRequestManager.js","sourceRoot":"","sources":["../../src/messaging/SpawnRequestManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-07-30T17:43:36.323Z",
|
|
5
|
+
"instarVersion": "1.3.1075",
|
|
6
6
|
"entryCount": 202,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
Every retryable refusal in `SpawnRequestManager` now passes through one preservation funnel before it returns. Cooldown, session-cap, memory-pressure, subscription-quota, and real pre-delivery launch failures keep their exact existing verdicts and retry intervals; the difference is that their inbound context is admitted to the existing retry queue rather than relying on branch authors to remember the same bookkeeping.
|
|
9
|
+
|
|
10
|
+
The launch path is now transactional around queued messages. It snapshots the backlog for the outgoing prompt but leaves those entries in the queue until `spawnSession` confirms delivery. A launch rejection leaves the backlog's original timestamps and order untouched, and the current refused payload joins it using the timestamp and sequence reserved when launch began. If a later arrival filled the final global queue slot while launch awaited, chronological reconciliation evicts that globally newest arrival for the earlier reservation while keeping the configured bound. A successful launch removes only the exact snapshot it delivered, so messages arriving during launch remain queued.
|
|
11
|
+
|
|
12
|
+
A per-agent in-flight reservation prevents two overlapping launches from delivering the same backlog when cooldown is zero. Degraded queue admission also floors legacy zero-cap configuration at one bounded slot, preventing the former non-terminating overflow loop.
|
|
13
|
+
|
|
14
|
+
A private branded TypeScript result makes direct retryable returns fail compilation; an AST ratchet pins the public method to that typed implementation, permits retryable call returns only from `#refuseTransiently`, and forbids branded casts elsewhere in the class. A mutation regression proves an `any`-returning helper cannot bypass the rule. The same test verifies the production server constructs this guarded class, starts the drain loop, passes that exact instance to `ThreadlineRouter` and `AgentServer`, and disposes it at shutdown.
|
|
15
|
+
|
|
16
|
+
## What to Tell Your User
|
|
17
|
+
|
|
18
|
+
Temporary worker-start failures no longer eat agent-to-agent messages. A refused message waits for the next delivery attempt, and this is now enforced across the whole class rather than repaired one branch at a time.
|
|
19
|
+
|
|
20
|
+
## Summary of New Capabilities
|
|
21
|
+
|
|
22
|
+
No new user-facing capability, endpoint, flag, or configuration. This is a reliability invariant and CI regression guard for existing Threadline delivery.
|
|
23
|
+
|
|
24
|
+
## Evidence
|
|
25
|
+
|
|
26
|
+
- Every new regression ran on the unfixed source first and failed for the intended reasons:
|
|
27
|
+
- the real launch-failure regression found zero retained payloads where two were required;
|
|
28
|
+
- the class ratchet found five retryable returns bypassing a preservation funnel.
|
|
29
|
+
- reviewer-strengthened checks exposed reordered concurrent arrivals, duplicate overlapping launch admission, the zero-cap loop precondition, and the missing typed guard.
|
|
30
|
+
- re-review-strengthened checks exposed final-slot global-cap loss of the earlier reservation and an `any`-helper bypass of the first branded ratchet.
|
|
31
|
+
- Fixed focused run: 89/89 tests.
|
|
32
|
+
- Adjacent subscription-quota, Threadline, relay, admission, and messaging-route run: 166/166 tests.
|
|
33
|
+
- `npm run lint`, including TypeScript typecheck and the full lint chain: pass.
|
|
34
|
+
- Production wiring assertions cover constructor, router/server handoff, drain-loop start, and shutdown disposal.
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Side-Effects Review — transient spawn refusal class guard
|
|
2
|
+
|
|
3
|
+
**Version / slug:** `spawn-transient-refusal-class-guard`
|
|
4
|
+
**Date:** `2026-07-30`
|
|
5
|
+
**Author:** `instar-codey`
|
|
6
|
+
**Second-pass reviewer:** `Locke (independent Codex review)`
|
|
7
|
+
|
|
8
|
+
## Summary of the change
|
|
9
|
+
|
|
10
|
+
`SpawnRequestManager.evaluate()` now delegates to a privately typed `#evaluateGuarded` implementation. Every retryable refusal in that implementation must satisfy a branded result type that only `#refuseTransiently` constructs; the funnel admits the current context to the existing bounded queue before returning the original denial. The spawn path snapshots queued entries without deleting them, passes that snapshot into the prompt, and commits only those exact object identities after `spawnSession` resolves. A real pre-delivery launch rejection therefore leaves the old backlog intact and queues the current request with its launch-start timestamp and sequence. If a later arrival occupied the final global slot during the await, global admission reconciles by sequence and displaces the globally newest later entry for the earlier reservation without exceeding the bound. A per-agent in-flight reservation prevents overlapping launches from delivering one snapshot twice. `tests/unit/spawn-request-manager-class-guard.test.ts` pins the public method to the typed implementation, permits call returns only from the preservation funnel, forbids branded casts elsewhere in the class, exercises an `any`-helper mutation, and checks the production server constructs, starts, routes, exposes, and disposes this exact manager.
|
|
11
|
+
|
|
12
|
+
Files touched:
|
|
13
|
+
|
|
14
|
+
- `src/messaging/SpawnRequestManager.ts` — typed preservation funnel, transactional queue snapshot/commit, sequence reservation, and per-agent in-flight serialization.
|
|
15
|
+
- `tests/unit/spawn-request-manager.test.ts` — real pre-delivery failure, ordering/TTL, overlap, final-global-slot reconciliation, and zero-cap regressions.
|
|
16
|
+
- `tests/unit/spawn-request-manager-class-guard.test.ts` — class-wide AST ratchet and production-wiring proof.
|
|
17
|
+
- `docs/specs/spawn-transient-refusal-class-guard.eli16.md` — Tier-1 plain-English review surface.
|
|
18
|
+
- `upgrades/next/spawn-transient-refusal-class-guard.md` — release fragment.
|
|
19
|
+
|
|
20
|
+
## Decision-point inventory
|
|
21
|
+
|
|
22
|
+
- `SpawnRequestManager.evaluate()` admission checks — **pass-through** — cooldown, session cap, memory pressure, subscription quota, and launch-failure predicates/verdicts are unchanged.
|
|
23
|
+
- `#refuseTransiently()` — **add** — mechanical postcondition for an already-made retryable decision; it has no authority to classify a request or relax a gate.
|
|
24
|
+
- `#spawnInflightByAgent` — **add** — a mechanical per-agent mutex after all admission decisions, preventing duplicate delivery without changing who may eventually spawn.
|
|
25
|
+
- queue snapshot commit after `spawnSession` resolution — **modify** — removes only payloads whose prompt has been reported delivered.
|
|
26
|
+
- degraded queue cap normalization — **modify** — stale constructor value zero is floored to one and new runtime updates reject zero, preventing a non-terminating overflow loop.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 1. Over-block
|
|
31
|
+
|
|
32
|
+
No admission authority changes. Every pre-existing refusal returns the same `approved`, `reason`, and `retryAfterMs` values as before. An overlapping same-agent launch is now serialized with a retryable refusal; without this mechanical lock, cooldown zero allowed both attempts to deliver the same queued instructions.
|
|
33
|
+
|
|
34
|
+
The existing global/per-agent queue bounds still apply. Ordinary new arrivals at the global cap are refused and set the existing truncation marker. The only reconciliation case is a payload stamped earlier but admitted later because its launch was in flight: it displaces the globally newest later entry, marks that entry's agent truncated, and leaves total depth unchanged. This preserves chronological priority without weakening the ceiling.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 2. Under-block
|
|
39
|
+
|
|
40
|
+
This guard defines “retryable” mechanically as a `SpawnResult` carrying `retryAfterMs`. The private brand and guarded return union make a new retryable result fail type-checking unless it uses the funnel. The AST half constrains every guarded return to either a final literal result or a direct `this.#refuseTransiently` call, forbids assertions inside the guarded method, and permits branded casts across the class only at the funnel's single construction point. A mutation test injects an `any`-returning private helper and proves the ratchet rejects it. A future refusal that is conceptually temporary and omits `retryAfterMs` would still be treated as permanent; reviewers must ensure temporary decisions expose retry semantics.
|
|
41
|
+
|
|
42
|
+
The queue remains process-local and a server restart can still lose admitted entries. That is tracked as `CMT-1112`; the current change closes branch drift, not persistence. <!-- tracked: CMT-1112 -->
|
|
43
|
+
|
|
44
|
+
The remote sender is not yet given an end-to-end receipt distinguishing “spawned now” from “accepted into retry queue” or “queue cap refused admission.” That contract correction is tracked as `CMT-1111`. <!-- tracked: CMT-1111 -->
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 3. Level-of-abstraction fit
|
|
49
|
+
|
|
50
|
+
The invariant belongs inside `SpawnRequestManager`, the one class that owns all five retryable outcomes and the queue they must feed. Putting it in `ThreadlineRouter` would require the router to reinterpret reason strings and duplicate admission knowledge. Putting it in each detector repeats the defect: another branch can forget.
|
|
51
|
+
|
|
52
|
+
The compiler brand is intentionally class-scoped and is the non-bypassable enforcement. The AST ratchet pins the production method shape and blocks casts around that brand, while ordinary behavioral tests prove the funnel actually preserves and later drains content.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 4. Signal vs authority compliance
|
|
57
|
+
|
|
58
|
+
**Required reference:** [docs/signal-vs-authority.md](../../docs/signal-vs-authority.md)
|
|
59
|
+
|
|
60
|
+
- [x] No — this change has no new block/allow surface.
|
|
61
|
+
|
|
62
|
+
Cooldown, session-count, memory-pressure, subscription-quota, and launch-result producers remain the existing authorities. `#refuseTransiently` consumes their already-final denial and performs deterministic storage bookkeeping. The AST test is a development-time structural validator, not a runtime message classifier and not a competing authority.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 4b. Judgment-point check (Judgment Within Floors standard)
|
|
67
|
+
|
|
68
|
+
No new static heuristic appears at a competing-signals decision point. “A result containing `retryAfterMs` must use the preservation funnel” is an enumerable transport invariant, analogous to an idempotency-key requirement. It does not judge message meaning, urgency, or user intent.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 5. Interactions
|
|
73
|
+
|
|
74
|
+
- **Shadowing:** the funnel runs only after an existing authority has denied. It cannot prevent later checks from running because those branches already returned at the same points.
|
|
75
|
+
- **Double-fire:** pre-spawn branches queue the current payload once through the funnel. The launch branch snapshots existing entries without removing them; success commits the snapshot, while rejection queues only the current payload. The per-agent in-flight set prevents a second launch from snapshotting the same backlog before the first commits.
|
|
76
|
+
- **Races:** `spawnSession` is awaited, so another inbound request can enqueue while launch is in flight. The old destructive drain temporarily freed capacity and could lose ordering. The new queue snapshot retains old entries in place; success removes snapshot entries by object identity, leaving concurrently appended entries even when their content/hash matches. On failure, the reserved current payload is inserted by its launch-start sequence, ahead of later arrivals.
|
|
77
|
+
- **TTL:** failed launch does not recreate backlog entries. The current request receives its `receivedAt` timestamp before the launch await, so a slow failure cannot extend its ten-minute lifetime.
|
|
78
|
+
- **Global capacity:** a reserved payload is not counted while already present in an in-flight launch prompt. If its launch fails after a later arrival fills the last slot, sequence reconciliation evicts only the globally newest later entry and admits the earlier reservation. This is bounded oldest-first retention, not extra capacity.
|
|
79
|
+
- **Truncation:** a successful snapshot commit clears the truncation marker only if no entries remain. A concurrent remainder retains its marker.
|
|
80
|
+
- **Drain loop:** `runTick` already prevents overlapping ticks with `#tickInflight`. The production `onDrainReady` callback calls the same guarded `evaluate()` method.
|
|
81
|
+
- **Zero cap:** legacy `degradedMaxQueuedPerAgent: 0` previously made `while (queue.length >= cap)` infinite even for an empty queue. Effective admission now floors it to one, and live config updates reject zero.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 6. External surfaces
|
|
86
|
+
|
|
87
|
+
Other agents observe no new response fields and no changed denial copy. The visible improvement is behavioral: a message refused under a temporary condition remains available for retry, including when the worker process itself failed before delivery.
|
|
88
|
+
|
|
89
|
+
No endpoint, configuration key, dashboard control, URL, database, or external service integration is added. Queue timing remains dependent on existing cooldown and drain cadence.
|
|
90
|
+
|
|
91
|
+
No operator-facing actions are introduced.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 6b. Operator-surface quality (Operator-Surface Quality standard)
|
|
96
|
+
|
|
97
|
+
No operator surface — not applicable.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 7. Multi-machine posture (Cross-Machine Coherence)
|
|
102
|
+
|
|
103
|
+
**Machine-local BY DESIGN.** Spawn admission and the pending queue belong to the machine that received the inbound dispatch and is responsible for starting the local worker. This change neither creates nor changes topic placement, replicated records, or pool routing. The class guard applies identically in every installed copy.
|
|
104
|
+
|
|
105
|
+
The process-local queue is not durable across restart; that separate persistence gap is tracked as `CMT-1112`. <!-- tracked: CMT-1112 -->
|
|
106
|
+
|
|
107
|
+
This change emits no user-facing notices, creates no URLs, and adds no durable state that could strand during topic transfer.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 8. Rollback cost
|
|
112
|
+
|
|
113
|
+
- **Hot-fix release:** revert the single code/test/docs commit and ship the next patch.
|
|
114
|
+
- **Data migration:** none.
|
|
115
|
+
- **Agent state repair:** none; the queue schema and persisted state are unchanged.
|
|
116
|
+
- **User visibility:** rollback would reopen the pre-delivery spawn-failure loss and remove the structural CI ratchet.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Conclusion
|
|
121
|
+
|
|
122
|
+
The side-effects pass changed the initial implementation materially. Re-enqueueing drained messages would have reset their TTL and reordered them behind messages arriving during the launch await. The first independent pass then found four further gaps: overlapping same-agent launches could duplicate the snapshot; the current failed payload could sort behind a later arrival; a zero degraded cap could loop forever; and a raw AST text rule could be bypassed. The second independent pass found two more: the earlier reservation could still lose to a later arrival at the global cap, and an `any`-returning helper outside the guarded method could evade the branded boundary. The final design adds per-agent serialization, launch-start sequence/TTL reservation, chronological global-cap reconciliation, a one-slot degraded floor, and a compiler-enforced private brand with whole-class cast and guarded-return constraints. Existing admission authorities remain intact. Independent re-review concurs; this is clear to ship.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Second-pass review
|
|
127
|
+
|
|
128
|
+
**Reviewer:** Locke
|
|
129
|
+
**First verdict:** CONCERN
|
|
130
|
+
|
|
131
|
+
The first pass requested four concrete repairs: serialize same-agent launches; preserve the current payload's launch-start order and TTL across failure; make zero degraded capacity terminate safely; and replace the bypassable raw AST rule with a compiler-enforced return boundary plus stronger production wiring assertions. All four were reproduced with tests that failed against the then-current implementation before the fixes were written.
|
|
132
|
+
|
|
133
|
+
**Second verdict:** CONCERN
|
|
134
|
+
|
|
135
|
+
The re-review found a cap-one race where a later in-flight refusal could occupy the sole global slot before the earlier launch failed, causing the earlier reservation to be dropped. It also demonstrated that an `any`-returning helper outside `#evaluateGuarded` could evade the first AST rule. Both exact reproductions failed before their repairs: the recovered prompt contained only the later payload, and the mutation produced zero violations. The implementation now reconciles full global capacity by sequence and the ratchet constrains guarded return shapes plus branded casts across the class.
|
|
136
|
+
|
|
137
|
+
**Final verdict:** CONCUR
|
|
138
|
+
|
|
139
|
+
Locke re-read the final diff and this artifact, reran the focused 89-test suite, and confirmed both later concerns plus all four earlier concerns are closed. The production constructor, `ThreadlineRouter`/`AgentServer` handoffs, start, and dispose links are real and structurally pinned. No actionable correctness concern remains.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Evidence pointers
|
|
144
|
+
|
|
145
|
+
- Initial failing-before runtime result: expected queue depth `2`, received `0`.
|
|
146
|
+
- Initial failing-before class ratchet: direct retryable result construction at five lines in the unfixed class.
|
|
147
|
+
- Reviewer-strengthened failing-before result: four failures — ordering, overlapping admission, zero-cap effective value, and missing typed guard.
|
|
148
|
+
- Re-review-strengthened failing-before result: two failures — final-slot loss of the earlier reservation and undetected `any`-helper indirection.
|
|
149
|
+
- Fixed focused run: 89/89.
|
|
150
|
+
- Adjacent quota/router/admission/integration run: 166/166.
|
|
151
|
+
- Full TypeScript and 33-step lint chain: pass after reviewer repairs.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Class-Closure Declaration (display-only mirror)
|
|
156
|
+
|
|
157
|
+
No agent-authored-artifact defect — not applicable. The defect is in hand-written TypeScript, not an LLM prompt, hook, config, skill, or standards text, and this change does not add a new self-triggered controller. The existing bounded drain controller is unchanged. Separately, this PR itself supplies the missing runtime/CI class guard: `#refuseTransiently` plus `tests/unit/spawn-request-manager-class-guard.test.ts` catch direct retryable returns, indirect helper returns, and branded casts outside the one construction point.
|