instar 1.3.749 → 1.3.751

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.
Files changed (35) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +40 -0
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/AgeKillBackoff.d.ts +9 -48
  5. package/dist/core/AgeKillBackoff.d.ts.map +1 -1
  6. package/dist/core/AgeKillBackoff.js +8 -84
  7. package/dist/core/AgeKillBackoff.js.map +1 -1
  8. package/dist/core/MessageSentinel.d.ts.map +1 -1
  9. package/dist/core/MessageSentinel.js +11 -0
  10. package/dist/core/MessageSentinel.js.map +1 -1
  11. package/dist/core/PostUpdateMigrator.d.ts +20 -0
  12. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  13. package/dist/core/PostUpdateMigrator.js +43 -0
  14. package/dist/core/PostUpdateMigrator.js.map +1 -1
  15. package/dist/core/SessionManager.d.ts +68 -32
  16. package/dist/core/SessionManager.d.ts.map +1 -1
  17. package/dist/core/SessionManager.js +159 -7
  18. package/dist/core/SessionManager.js.map +1 -1
  19. package/dist/core/VetoedKillBackoff.d.ts +130 -0
  20. package/dist/core/VetoedKillBackoff.d.ts.map +1 -0
  21. package/dist/core/VetoedKillBackoff.js +221 -0
  22. package/dist/core/VetoedKillBackoff.js.map +1 -0
  23. package/dist/core/types.d.ts +18 -0
  24. package/dist/core/types.d.ts.map +1 -1
  25. package/dist/core/types.js.map +1 -1
  26. package/dist/monitoring/IncidentDedupe.d.ts +36 -0
  27. package/dist/monitoring/IncidentDedupe.d.ts.map +1 -0
  28. package/dist/monitoring/IncidentDedupe.js +38 -0
  29. package/dist/monitoring/IncidentDedupe.js.map +1 -0
  30. package/package.json +1 -1
  31. package/src/data/builtin-manifest.json +20 -20
  32. package/upgrades/1.3.750.md +30 -0
  33. package/upgrades/1.3.751.md +17 -0
  34. package/upgrades/side-effects/keyword-intent-decision-ratchet.md +67 -0
  35. package/upgrades/side-effects/session-respawn-thrash-elimination.md +75 -0
@@ -38,6 +38,7 @@ import { type PermissionPromptAutoResolver } from '../monitoring/PermissionPromp
38
38
  import type { Session, SessionManagerConfig, ModelTier } from './types.js';
39
39
  import type { IntelligenceFramework } from './intelligenceProviderFactory.js';
40
40
  import { StateManager } from './StateManager.js';
41
+ import type { IncidentDedupe } from '../monitoring/IncidentDedupe.js';
41
42
  /**
42
43
  * Pure age-gate idle decision — extracted so the exact 2026-06-13 incident can be
43
44
  * reproduced at the decision boundary (Bug-Fix Evidence Bar). A session past its
@@ -115,6 +116,17 @@ export interface SessionManagerOptions {
115
116
  * resolveDevAgentGate(monitoring.idleThrottleSettleGate.enabled). Absent ⇒ legacy
116
117
  * immediate emit, unchanged. */
117
118
  idleThrottleSettleGate?: boolean;
119
+ /** Idle-zombie veto-backoff ledger (session-respawn-thrash Fix A). Resolved
120
+ * server-side via resolveDevAgentGate(monitoring.idleKillVetoBackoff.enabled).
121
+ * DISABLED CONTRACT (C1): when `enabled !== true` the `idleKillBackoff` ledger
122
+ * is never constructed and never consulted — the idle-zombie branch falls
123
+ * through to its exact prior per-tick behavior. `cooldownMs: 0` is
124
+ * enabled-but-no-cooldown (R4-5), NOT a disable. */
125
+ idleKillVetoBackoff?: {
126
+ enabled: boolean;
127
+ cooldownMs: number;
128
+ escalateAfterEpisodes: number;
129
+ };
118
130
  /** Coordinator/mesh identity machine id for the per-machine
119
131
  * SessionBuildContextStore re-key (standby-write-reconciliation §3.3).
120
132
  * A GETTER because the mesh identity resolves after SessionManager
@@ -245,6 +257,18 @@ export declare class SessionManager extends EventEmitter {
245
257
  * is vetoed (session kept), suppress re-requests for a window instead of re-asking every
246
258
  * 5s tick (the 2026-06-05 17,503-line flood). Constructed in the constructor. */
247
259
  private ageKillBackoff;
260
+ /** Idle-zombie veto-backoff ledger (session-respawn-thrash Fix A). A SECOND,
261
+ * independently-configured VetoedKillBackoff instance for the bound-idle zombie
262
+ * killer (the age-gate keeps its own instance above). DISABLED CONTRACT (C1):
263
+ * left `undefined` and never consulted when the feature resolves disabled — the
264
+ * idle-zombie branch falls through to its exact prior per-tick behavior. */
265
+ private idleKillBackoff?;
266
+ /** P19 breaker threshold (Fix A′): after this many consecutive veto episodes on
267
+ * the SAME session with the keep-reason still active, raise ONE attention item. */
268
+ private idleKillEscalateAfter;
269
+ /** Best-effort "one per incident" dedupe seam for the P19 breaker (Fix A′).
270
+ * Injected at server boot; when unset the breaker escalation is a no-op. */
271
+ private incidentDedupe?;
248
272
  /** Cached count of running sessions, updated asynchronously by the monitor tick.
249
273
  * Used by the health endpoint to avoid synchronous tmux polling. */
250
274
  private _cachedRunningCount;
@@ -445,6 +469,42 @@ export declare class SessionManager extends EventEmitter {
445
469
  * kills bypass the guard. Unset (tests/standalone) → no guard consult.
446
470
  */
447
471
  setReapGuard(guard: ReapGuard): void;
472
+ /**
473
+ * Wire the best-effort "one per incident" dedupe seam for the idle-zombie veto
474
+ * P19 breaker (session-respawn-thrash Fix A′). Server boot injects the shared
475
+ * IncidentDedupe so the breaker escalation coalesces across ticks. Unset ⇒ the
476
+ * breaker never escalates (best-effort, signal-only).
477
+ */
478
+ setIncidentDedupe(seam: IncidentDedupe): void;
479
+ /**
480
+ * Evaluate the ReapGuard ONCE for the idle-zombie kill decision (C2/R4-2). Calls
481
+ * blockedReason with NO bypass flags (the idle-zombie branch never bypasses), and
482
+ * normalizes the vetoing reason to its STABLE ledger key. The verdict is threaded
483
+ * through both the backoff gate (shouldRequest) and the terminate call so the
484
+ * guard is never double-evaluated with a possibly-changed reason between them.
485
+ */
486
+ private computeIdleZombieReapVerdict;
487
+ /**
488
+ * P19 breaker (Fix A′): after `idleKillEscalateAfter` consecutive veto episodes
489
+ * on a session whose keep-reason is still active, raise ONE attention item via
490
+ * the injected dedupe seam so it emits at most once per incident within the
491
+ * process window. Signal-only — best-effort; if no seam is injected nothing
492
+ * emits. Never spawns a topic or touches a transport directly.
493
+ */
494
+ private maybeEscalateIdleZombieVeto;
495
+ /**
496
+ * Idle-zombie kill decision (session-respawn-thrash Fix A). Factored out of
497
+ * monitorTick so the enabled/disabled split is unit-testable in isolation.
498
+ *
499
+ * ENABLED (idleKillBackoff constructed) — veto-backoff path: evaluate the guard
500
+ * once, honor the reason-key-aware cooldown, attempt the kill through the SAME
501
+ * verdict, then either drop state on a real kill or record the veto (logging ONCE
502
+ * per episode + escalating after N episodes). DISABLED (field undefined) — the
503
+ * exact prior per-tick behavior: attempt terminateSession every tick.
504
+ *
505
+ * @returns whether a kill was actually performed (for the caller's WARN wording).
506
+ */
507
+ private handleIdleZombie;
448
508
  /**
449
509
  * Wire the SDK-credit reader used by the headless-spawn-reroute 'auto'
450
510
  * decision (june15-headless-spawn-reroute, PR2). Server boot passes
@@ -577,45 +637,21 @@ export declare class SessionManager extends EventEmitter {
577
637
  knownDead?: boolean;
578
638
  bypassRecoveryFlag?: boolean;
579
639
  bypassActiveProcessKeep?: boolean;
580
- /**
581
- * Post-transfer closeout correctness (F1, Part E): a NARROW keep-reason
582
- * bypass that lifts ONLY the `recent-user-message` keep-reason (mirroring
583
- * `bypassActiveProcessKeep`). The SessionReaper sets it ONLY on a
584
- * liveness-CONFIRMED genuine move (Part C `true`) whose freshest LOCAL user
585
- * message PREDATES the liveness snapshot — so a duplicate leftover with a
586
- * stale pre-move "recent" message can actually shed. Every OTHER KEEP-guard
587
- * (active-subagent, open-commitment, recovery-in-flight, …) is re-checked
588
- * fresh and still vetoes. Spec: docs/specs/post-transfer-closeout-correctness.md.
589
- */
590
640
  bypassRecentUserMessageForConfirmedMove?: boolean;
591
- /**
592
- * Post-transfer closeout carve-out (F8, roadmap 0.6,
593
- * test-as-self 2026-07-02): lifts ONLY the lease-holder gate — protected,
594
- * CAS, in-flight, and EVERY KEEP-guard still apply unchanged. The
595
- * SessionReaper sets it ONLY on the topic-moved closeout path, where this
596
- * machine is closing ITS OWN local leftover session for a topic the pool
597
- * ownership registry says ANOTHER machine now owns. The lease gate exists
598
- * so a standby never reaps ANOTHER machine's sessions; the post-transfer
599
- * closeout is the inverse case — the machine a topic moves AWAY from is
600
- * by definition usually NOT the serving-lease holder, so without this
601
- * carve-out the transfer's required teardown was structurally vetoed
602
- * `skipped:'not-lease-holder'` every attempt until the P19 breaker gave
603
- * up, stranding a duplicate session on the old machine (audit F8).
604
- */
605
641
  bypassLeaseForTopicMovedCloseout?: boolean;
606
- /**
607
- * Killer-supplied work evidence (reap-notify spec R2.1): computed at the
608
- * KILLER's decision point — the only moment the work was observable (the
609
- * quota-shed migrator computes it BEFORE its Ctrl+C grace round tears the
610
- * work down; a chokepoint re-run is empty by construction for
611
- * guard-cleared kills). Clamped to the WorkEvidence enum here regardless
612
- * of which killer supplied it; unknown names are dropped, not stored.
613
- */
614
642
  workEvidence?: string[];
615
643
  }): Promise<{
616
644
  terminated: boolean;
617
645
  skipped?: string;
618
646
  }>;
647
+ /**
648
+ * The single-writer termination implementation. `precomputedGuardVerdict`, when
649
+ * provided (ONLY by the idle-zombie branch, which uses no bypass flags), threads
650
+ * the already-computed ReapGuard verdict through so the guard is not
651
+ * double-evaluated in the same tick (C2). Every OTHER caller passes it undefined
652
+ * and the guard is evaluated here exactly as before.
653
+ */
654
+ private terminateSessionInternal;
619
655
  /**
620
656
  * Pressure-tier provider for the evidence fallback (reap-notify spec R2.1):
621
657
  * at tier 'critical' the fork-based closures are skipped and the
@@ -1 +1 @@
1
- {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../src/core/SessionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../src/core/SessionManager.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ import { getTelegramInboundDir } from '../messaging/shared/telegramInboundFiles.
38
38
  import { SessionBuildContextStore } from './SessionBuildContextStore.js';
39
39
  import { PendingInjectStore, sweepPendingInjects } from './PendingInjectStore.js';
40
40
  import { AgeKillBackoff } from './AgeKillBackoff.js';
41
+ import { VetoedKillBackoff, normalizeReasonKey, IDLE_ZOMBIE_ESCALATION_REASONS } from './VetoedKillBackoff.js';
41
42
  /** Absolute maximum session duration (4 hours) — safety net for sessions without explicit timeout */
42
43
  const DEFAULT_MAX_DURATION_MINUTES = 240;
43
44
  /** Age-gate transcript-activity window (ms). A session whose framework transcript
@@ -295,6 +296,18 @@ export class SessionManager extends EventEmitter {
295
296
  * is vetoed (session kept), suppress re-requests for a window instead of re-asking every
296
297
  * 5s tick (the 2026-06-05 17,503-line flood). Constructed in the constructor. */
297
298
  ageKillBackoff;
299
+ /** Idle-zombie veto-backoff ledger (session-respawn-thrash Fix A). A SECOND,
300
+ * independently-configured VetoedKillBackoff instance for the bound-idle zombie
301
+ * killer (the age-gate keeps its own instance above). DISABLED CONTRACT (C1):
302
+ * left `undefined` and never consulted when the feature resolves disabled — the
303
+ * idle-zombie branch falls through to its exact prior per-tick behavior. */
304
+ idleKillBackoff;
305
+ /** P19 breaker threshold (Fix A′): after this many consecutive veto episodes on
306
+ * the SAME session with the keep-reason still active, raise ONE attention item. */
307
+ idleKillEscalateAfter = 6;
308
+ /** Best-effort "one per incident" dedupe seam for the P19 breaker (Fix A′).
309
+ * Injected at server boot; when unset the breaker escalation is a no-op. */
310
+ incidentDedupe;
298
311
  /** Cached count of running sessions, updated asynchronously by the monitor tick.
299
312
  * Used by the health endpoint to avoid synchronous tmux polling. */
300
313
  _cachedRunningCount = 0;
@@ -379,6 +392,14 @@ export class SessionManager extends EventEmitter {
379
392
  // (config.ageKillBackoffMinutes; 0 disables → legacy every-tick behavior).
380
393
  const backoffMin = typeof config.ageKillBackoffMinutes === 'number' ? config.ageKillBackoffMinutes : 10;
381
394
  this.ageKillBackoff = new AgeKillBackoff({ backoffMs: Math.max(0, backoffMin) * 60_000 });
395
+ // Idle-zombie veto-backoff ledger (session-respawn-thrash Fix A). DISABLED
396
+ // CONTRACT (C1): only construct when explicitly enabled — otherwise the field
397
+ // stays undefined and the idle-zombie branch runs its exact prior per-tick
398
+ // behavior. `cooldownMs: 0` is enabled-but-no-cooldown (R4-5), never a disable.
399
+ if (opts.idleKillVetoBackoff?.enabled === true) {
400
+ this.idleKillBackoff = new VetoedKillBackoff({ backoffMs: opts.idleKillVetoBackoff.cooldownMs });
401
+ this.idleKillEscalateAfter = opts.idleKillVetoBackoff.escalateAfterEpisodes;
402
+ }
382
403
  if (config.respawnBuildContext?.enabled) {
383
404
  this.buildContextStore = new SessionBuildContextStore(state, {
384
405
  maxAgeMs: config.respawnBuildContext.maxAgeMs,
@@ -671,6 +692,104 @@ rm() { "${shimRunner}" rm "$@"; }
671
692
  setReapGuard(guard) {
672
693
  this.reapGuard = guard;
673
694
  }
695
+ /**
696
+ * Wire the best-effort "one per incident" dedupe seam for the idle-zombie veto
697
+ * P19 breaker (session-respawn-thrash Fix A′). Server boot injects the shared
698
+ * IncidentDedupe so the breaker escalation coalesces across ticks. Unset ⇒ the
699
+ * breaker never escalates (best-effort, signal-only).
700
+ */
701
+ setIncidentDedupe(seam) {
702
+ this.incidentDedupe = seam;
703
+ }
704
+ /**
705
+ * Evaluate the ReapGuard ONCE for the idle-zombie kill decision (C2/R4-2). Calls
706
+ * blockedReason with NO bypass flags (the idle-zombie branch never bypasses), and
707
+ * normalizes the vetoing reason to its STABLE ledger key. The verdict is threaded
708
+ * through both the backoff gate (shouldRequest) and the terminate call so the
709
+ * guard is never double-evaluated with a possibly-changed reason between them.
710
+ */
711
+ computeIdleZombieReapVerdict(session, _now) {
712
+ const blocked = this.reapGuard?.blockedReason(session) ?? null;
713
+ return { blocked, reasonKey: normalizeReasonKey(blocked) };
714
+ }
715
+ /**
716
+ * P19 breaker (Fix A′): after `idleKillEscalateAfter` consecutive veto episodes
717
+ * on a session whose keep-reason is still active, raise ONE attention item via
718
+ * the injected dedupe seam so it emits at most once per incident within the
719
+ * process window. Signal-only — best-effort; if no seam is injected nothing
720
+ * emits. Never spawns a topic or touches a transport directly.
721
+ */
722
+ maybeEscalateIdleZombieVeto(session, topicId, reasonKey) {
723
+ const incidentKey = 'idle-zombie-veto:' + (topicId ?? 'none') + ':' + reasonKey;
724
+ if (this.incidentDedupe?.shouldEmit(incidentKey, 24 * 60 * 60 * 1000)) {
725
+ this.emit('idleZombieVetoEscalation', {
726
+ session,
727
+ topicId,
728
+ reasonKey,
729
+ message: `Session "${session.name}" on topic ${topicId ?? 'n/a'} is permanently vetoed from idle-zombie cleanup (reason: ${reasonKey}) — likely a stuck open-commitment or a resume-loop; investigate.`,
730
+ });
731
+ }
732
+ }
733
+ /**
734
+ * Idle-zombie kill decision (session-respawn-thrash Fix A). Factored out of
735
+ * monitorTick so the enabled/disabled split is unit-testable in isolation.
736
+ *
737
+ * ENABLED (idleKillBackoff constructed) — veto-backoff path: evaluate the guard
738
+ * once, honor the reason-key-aware cooldown, attempt the kill through the SAME
739
+ * verdict, then either drop state on a real kill or record the veto (logging ONCE
740
+ * per episode + escalating after N episodes). DISABLED (field undefined) — the
741
+ * exact prior per-tick behavior: attempt terminateSession every tick.
742
+ *
743
+ * @returns whether a kill was actually performed (for the caller's WARN wording).
744
+ */
745
+ async handleIdleZombie(session, idleMs, binding, now, bindingNote, killThresholdMinutes) {
746
+ void killThresholdMinutes; // threshold already applied by the caller
747
+ if (this.idleKillBackoff) {
748
+ // ENABLED — veto-backoff path.
749
+ const verdict = this.computeIdleZombieReapVerdict(session, now);
750
+ // Unkeyable fail-open (R4-4): a truthy veto with no usable reason string →
751
+ // re-evaluate this tick rather than gate on a fabricated key.
752
+ const unkeyable = verdict.blocked != null && verdict.reasonKey == null;
753
+ if (!unkeyable && !this.idleKillBackoff.shouldRequest(session.id, now, verdict.reasonKey)) {
754
+ // Inside the cooldown, same reason → quiet skip: no terminate attempt,
755
+ // no reap-log write.
756
+ return;
757
+ }
758
+ const result = await this.terminateSessionInternal(session.id, 'idle-zombie', { disposition: 'terminal' }, { blocked: verdict.blocked });
759
+ if (result.terminated) {
760
+ console.warn(`[SessionManager] Session "${session.name}" idle at prompt for ${Math.round(idleMs / 60_000)}m with no active processes${bindingNote}. Killing zombie.`);
761
+ this.idleKillBackoff.recordKilled(session.id);
762
+ }
763
+ else {
764
+ const vetoKey = normalizeReasonKey(result.skipped ? { reason: result.skipped } : null)
765
+ ?? verdict.reasonKey ?? 'unknown';
766
+ // Cooldown applies to EVERY skip reason (the flood-stop benefit is
767
+ // universal — incl. a STANDBY machine's `not-lease-holder` every-tick skip,
768
+ // itself a documented reap-log flood source).
769
+ const firstOfEpisode = this.idleKillBackoff.recordVeto(session.id, now, vetoKey);
770
+ if (firstOfEpisode) {
771
+ console.warn(`[SessionManager] Session "${session.name}" idle-zombie cleanup vetoed (${vetoKey})${bindingNote} — backing off re-attempts.`);
772
+ }
773
+ // Breaker (Fix A′): escalate ONLY when the persisting reason is a genuine
774
+ // STUCK-session keep-reason (second-pass review point 9). Authority/CAS
775
+ // skips (`not-lease-holder` on a standby machine, `in-flight`, `protected`,
776
+ // `already-*`, …) back off above but must NEVER raise the "permanently
777
+ // vetoed from idle-zombie cleanup" attention item — that wording is false
778
+ // for them, and a standby machine would otherwise emit misleading HIGH items.
779
+ if (IDLE_ZOMBIE_ESCALATION_REASONS.has(vetoKey)
780
+ && this.idleKillBackoff.episodeCount(session.id) >= this.idleKillEscalateAfter) {
781
+ const topicId = typeof binding === 'number'
782
+ ? binding
783
+ : (binding != null && /^-?\d+$/.test(String(binding)) ? Number(binding) : null);
784
+ this.maybeEscalateIdleZombieVeto(session, topicId, vetoKey);
785
+ }
786
+ }
787
+ return;
788
+ }
789
+ // DISABLED — prior per-tick behavior EXACTLY.
790
+ console.warn(`[SessionManager] Session "${session.name}" idle at prompt for ${Math.round(idleMs / 60_000)}m with no active processes${bindingNote}. Killing zombie.`);
791
+ await this.terminateSession(session.id, 'idle-zombie', { disposition: 'terminal' });
792
+ }
674
793
  /**
675
794
  * Wire the SDK-credit reader used by the headless-spawn-reroute 'auto'
676
795
  * decision (june15-headless-spawn-reroute, PR2). Server boot passes
@@ -851,6 +970,25 @@ rm() { "${shimRunner}" rm "$@"; }
851
970
  * `{ terminated: false, skipped }` describing why it was a no-op.
852
971
  */
853
972
  async terminateSession(sessionId, reason, opts) {
973
+ // Public enforcement boundary — re-evaluates the guard itself (no precomputed
974
+ // verdict). The single-guard-eval precompute is a PRIVATE same-tick optimization
975
+ // used only by the idle-zombie branch (R3-1/R4-2); it is NEVER a public option.
976
+ return this.terminateSessionInternal(sessionId, reason, opts);
977
+ }
978
+ /**
979
+ * The single-writer termination implementation. `precomputedGuardVerdict`, when
980
+ * provided (ONLY by the idle-zombie branch, which uses no bypass flags), threads
981
+ * the already-computed ReapGuard verdict through so the guard is not
982
+ * double-evaluated in the same tick (C2). Every OTHER caller passes it undefined
983
+ * and the guard is evaluated here exactly as before.
984
+ */
985
+ async terminateSessionInternal(sessionId, reason, opts,
986
+ /** Idle-zombie-only same-tick optimization (C2/R4-2): the ReapGuard verdict
987
+ * already computed by computeIdleZombieReapVerdict, threaded here so the guard
988
+ * is evaluated ONCE. Only the idle-zombie branch (which uses no bypass flags)
989
+ * supplies it; every other caller leaves it undefined and the guard is
990
+ * re-evaluated below. NEVER exposed on the public terminateSession() signature. */
991
+ precomputedGuardVerdict) {
854
992
  const session = this.state.getSession(sessionId);
855
993
  if (!session)
856
994
  return { terminated: false, skipped: 'not-found' };
@@ -912,7 +1050,13 @@ rm() { "${shimRunner}" rm "$@"; }
912
1050
  bypassedReasons.push('active-process');
913
1051
  if (opts?.bypassRecentUserMessageForConfirmedMove)
914
1052
  bypassedReasons.push('recent-user-message');
915
- const blocked = this.reapGuard?.blockedReason(session, bypassedReasons.length > 0 ? bypassedReasons : undefined);
1053
+ // C2/R4-2: the idle-zombie branch precomputes the guard verdict (no bypass
1054
+ // flags) and threads it here so the guard is evaluated ONCE this tick.
1055
+ // Every other caller leaves precomputedGuardVerdict undefined and the guard
1056
+ // is evaluated fresh (today's behavior, honoring any bypass flags).
1057
+ const blocked = precomputedGuardVerdict !== undefined
1058
+ ? precomputedGuardVerdict.blocked
1059
+ : this.reapGuard?.blockedReason(session, bypassedReasons.length > 0 ? bypassedReasons : undefined);
916
1060
  // `bypassRecoveryFlag` (UNIFIED-SESSION-LIFECYCLE §P0 #8): the recovery
917
1061
  // engine itself sets the recovery-in-flight flag synchronously before
918
1062
  // its kill-to-respawn, so the guard would otherwise refuse the
@@ -1476,6 +1620,7 @@ rm() { "${shimRunner}" rm "$@"; }
1476
1620
  console.log(`[SessionManager] Session "${session.name}" has unsubmitted pasted text — resending Enter.`);
1477
1621
  await this.sendKeyMaybeAsync(session.tmuxSession, 'Enter');
1478
1622
  this.idlePromptSince.delete(session.id); // Reset idle timer
1623
+ this.idleKillBackoff?.reset(session.id);
1479
1624
  continue; // Skip to next session
1480
1625
  }
1481
1626
  }
@@ -1546,6 +1691,7 @@ rm() { "${shimRunner}" rm "$@"; }
1546
1691
  if (this.listenerCount('apiErrorAtIdle') > 0) {
1547
1692
  this.emit('apiErrorAtIdle', session.tmuxSession);
1548
1693
  this.idlePromptSince.delete(session.id);
1694
+ this.idleKillBackoff?.reset(session.id);
1549
1695
  continue; // Skip to next session — sentinel owns recovery.
1550
1696
  }
1551
1697
  // Fallback (no sentinel wired, e.g. bare/test): the re-armable
@@ -1554,6 +1700,7 @@ rm() { "${shimRunner}" rm "$@"; }
1554
1700
  console.log(`[SessionManager] Session "${session.name}" idle after API error — nudging to continue (nudge #${nudgeTotal + 1} this session).`);
1555
1701
  this.sendInput(session.tmuxSession, 'You hit an API error. Please continue your work — skip or work around the action that failed.');
1556
1702
  this.idlePromptSince.delete(session.id); // Reset idle timer
1703
+ this.idleKillBackoff?.reset(session.id);
1557
1704
  continue; // Skip to next session
1558
1705
  }
1559
1706
  }
@@ -1576,6 +1723,7 @@ rm() { "${shimRunner}" rm "$@"; }
1576
1723
  if (this.activeRecoveryChecker && this.activeRecoveryChecker(session)) {
1577
1724
  console.log(`[SessionManager] Skipping zombie kill for "${session.name}" — compaction recovery in flight.`);
1578
1725
  this.idlePromptSince.delete(session.id);
1726
+ this.idleKillBackoff?.reset(session.id); // recovery window → re-evaluate fresh next tick
1579
1727
  continue;
1580
1728
  }
1581
1729
  // Check for unanswered injection before killing
@@ -1591,13 +1739,12 @@ rm() { "${shimRunner}" rm "$@"; }
1591
1739
  });
1592
1740
  }
1593
1741
  const bindingNote = binding != null ? ` (topic-bound, threshold ${killThresholdMinutes}m)` : ` (threshold ${killThresholdMinutes}m)`;
1594
- console.warn(`[SessionManager] Session "${session.name}" idle at prompt for ${Math.round(idleMs / 60_000)}m with no active processes${bindingNote}. Killing zombie.`);
1595
1742
  // Funnel through the single-writer path so the reaper and this
1596
- // idle-kill can never double-kill or double-emit (§3.6). Explicit
1597
- // terminal disposition the §P3 notifier surfaces it to the user.
1598
- await this.terminateSession(session.id, 'idle-zombie', {
1599
- disposition: 'terminal',
1600
- });
1743
+ // idle-kill can never double-kill or double-emit (§3.6). The
1744
+ // veto-backoff ledger (Fix A) suppresses the every-5s re-attempt on
1745
+ // a permanently-vetoed session; the WARN + terminate live in the
1746
+ // helper's enabled/disabled split.
1747
+ await this.handleIdleZombie(session, idleMs, binding ?? null, now, bindingNote, killThresholdMinutes);
1601
1748
  continue;
1602
1749
  }
1603
1750
  }
@@ -1609,6 +1756,7 @@ rm() { "${shimRunner}" rm "$@"; }
1609
1756
  // this same long-running session deserves its own nudge. (errorNudgeTotal
1610
1757
  // is NOT cleared here — it's the lifetime runaway cap.)
1611
1758
  this.idlePromptSince.delete(session.id);
1759
+ this.idleKillBackoff?.reset(session.id); // resumed work → re-evaluate next tick, don't stay suppressed
1612
1760
  this.errorNudgedSessions.delete(session.id);
1613
1761
  this.idleErrorClassified.delete(session.id); // CMT-1785: re-arm the once-per-episode classify audit
1614
1762
  this.idleThrottleSettle.delete(session.tmuxSession); // session moved on — reset the settle clock
@@ -2495,6 +2643,7 @@ rm() { "${shimRunner}" rm "$@"; }
2495
2643
  // beforeSessionKill). Preserved to avoid changing listener semantics —
2496
2644
  // the CAS guard + endedReason are the only additions here.
2497
2645
  this.idlePromptSince.delete(session.id);
2646
+ this.idleKillBackoff?.clear(session.id); // session gone → drop veto-backoff state (map-leak eviction)
2498
2647
  this.reapingSessions.delete(session.id);
2499
2648
  // G3 (MESH-SELF-HEAL-SPEC §3.3, FD7): "a topic→session binding exists IFF a
2500
2649
  // live session exists." killSession historically did NOT clear the binding,
@@ -3444,6 +3593,7 @@ rm() { "${shimRunner}" rm "$@"; }
3444
3593
  if (age > ttl) {
3445
3594
  if (this.state.removeSession(session.id)) {
3446
3595
  cleaned.push(session.id);
3596
+ this.idleKillBackoff?.clear(session.id); // map-leak eviction (Fix A finding 1)
3447
3597
  }
3448
3598
  }
3449
3599
  else if (session.status === 'completed') {
@@ -3458,6 +3608,7 @@ rm() { "${shimRunner}" rm "$@"; }
3458
3608
  for (const s of excess) {
3459
3609
  if (this.state.removeSession(s.id)) {
3460
3610
  cleaned.push(s.id);
3611
+ this.idleKillBackoff?.clear(s.id); // map-leak eviction (Fix A finding 1)
3461
3612
  }
3462
3613
  }
3463
3614
  }
@@ -4529,6 +4680,7 @@ rm() { "${shimRunner}" rm "$@"; }
4529
4680
  const match = running.find(s => s.tmuxSession === tmuxSession);
4530
4681
  if (match) {
4531
4682
  this.idlePromptSince.delete(match.id);
4683
+ this.idleKillBackoff?.reset(match.id); // new input arriving → re-evaluate fresh, not a zombie
4532
4684
  }
4533
4685
  const exactTarget = `=${tmuxSession}:`;
4534
4686
  // Framework-specific submit semantics. Claude Code's readline buffers