instar 1.3.463 → 1.3.465

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 (34) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +46 -3
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  5. package/dist/config/ConfigDefaults.js +10 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/SessionManager.d.ts +1 -0
  8. package/dist/core/SessionManager.d.ts.map +1 -1
  9. package/dist/core/SessionManager.js +19 -1
  10. package/dist/core/SessionManager.js.map +1 -1
  11. package/dist/core/types.d.ts +10 -0
  12. package/dist/core/types.d.ts.map +1 -1
  13. package/dist/core/types.js.map +1 -1
  14. package/dist/monitoring/ActiveWorkSilenceSentinel.d.ts +27 -2
  15. package/dist/monitoring/ActiveWorkSilenceSentinel.d.ts.map +1 -1
  16. package/dist/monitoring/ActiveWorkSilenceSentinel.js +50 -0
  17. package/dist/monitoring/ActiveWorkSilenceSentinel.js.map +1 -1
  18. package/dist/monitoring/SentinelNotifier.d.ts +1 -1
  19. package/dist/monitoring/SentinelNotifier.d.ts.map +1 -1
  20. package/dist/monitoring/SentinelNotifier.js.map +1 -1
  21. package/dist/monitoring/SessionReaper.d.ts +8 -1
  22. package/dist/monitoring/SessionReaper.d.ts.map +1 -1
  23. package/dist/monitoring/SessionReaper.js +16 -3
  24. package/dist/monitoring/SessionReaper.js.map +1 -1
  25. package/dist/monitoring/sentinelWiring.d.ts +8 -0
  26. package/dist/monitoring/sentinelWiring.d.ts.map +1 -1
  27. package/dist/monitoring/sentinelWiring.js +10 -0
  28. package/dist/monitoring/sentinelWiring.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/data/builtin-manifest.json +3 -3
  31. package/upgrades/1.3.464.md +72 -0
  32. package/upgrades/1.3.465.md +54 -0
  33. package/upgrades/side-effects/autoheal-silence-ladder.md +98 -0
  34. package/upgrades/side-effects/reaper-active-process-relaxation-parity.md +104 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAkG7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA65BD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GACpD,IAAI,CA0UN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA+5UtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAkG7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA65BD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GACpD,IAAI,CA0UN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA08UtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
@@ -6469,18 +6469,59 @@ export async function startServer(options) {
6469
6469
  const silenceCfg = config.monitoring?.activeWorkSilenceSentinel ?? { enabled: true };
6470
6470
  if (silenceCfg.enabled !== false) {
6471
6471
  const tracker = new OutputActivityTracker(sessionSurface);
6472
+ // Auto-heal ladder (DARK, off by default): when a confirmed-silent session
6473
+ // can't be nudged back, respawn it fresh (conversation preserved via
6474
+ // --resume) instead of only asking the user. Gated by autoRecover; the
6475
+ // respawn is loop-capped by maxAutoRecoveries inside the sentinel, and a
6476
+ // failed respawn leaves a recovery-failed state so it never re-fires.
6477
+ const silenceAutoRecover = silenceCfg.autoRecover === true;
6472
6478
  const silenceSentinel = new ActiveWorkSilenceSentinel(buildActiveWorkSilenceDeps({
6473
6479
  tracker, sessions: sessionSurface,
6474
6480
  escalate: (name, text) => notifier.escalate('active-silence', name, text),
6481
+ // Operator ask (2026-06-09): silence/recovery notices land in the
6482
+ // STALLED session's OWN topic, not the consolidated lifeline feed.
6483
+ getTopicForSession: (name) => telegram?.getTopicForSession(name),
6484
+ deliverToTopic: async (topicId, text) => {
6485
+ try {
6486
+ const resp = await fetch(`http://localhost:${config.port}/telegram/reply/${topicId}`, {
6487
+ method: 'POST',
6488
+ headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${config.authToken}` },
6489
+ body: JSON.stringify({ text }),
6490
+ });
6491
+ return resp.ok;
6492
+ }
6493
+ catch {
6494
+ // @silent-fallback-ok: a failed per-topic delivery returns false so
6495
+ // notifyFn falls back to the consolidated `escalate` path (which is
6496
+ // the reported/audited route) — not a silent degradation.
6497
+ return false;
6498
+ }
6499
+ },
6500
+ recoverFn: silenceAutoRecover
6501
+ ? async (name) => {
6502
+ if (!_sessionRefresh)
6503
+ return false;
6504
+ const result = await _sessionRefresh.refreshSession({
6505
+ sessionName: name,
6506
+ fresh: true,
6507
+ reason: 'active-silence-autoheal',
6508
+ });
6509
+ return result.ok;
6510
+ }
6511
+ : undefined,
6475
6512
  }), silenceCfg);
6476
6513
  silenceSentinel.on('silence', (e) => notifier.record('detected', 'active-silence', e.sessionName, `idleMs=${e.idleMs}`));
6477
6514
  silenceSentinel.on('recovered', (n) => notifier.record('recovered', 'active-silence', n));
6515
+ silenceSentinel.on('recovering', (n) => notifier.record('recovering', 'active-silence', n));
6516
+ silenceSentinel.on('recovery-failed', (n) => notifier.record('escalated', 'active-silence', n, 'auto-recover failed — asked user'));
6517
+ silenceSentinel.on('recover-error', (e) => notifier.record('recovery-error', 'active-silence', e.sessionName, e.err instanceof Error ? e.err.message : String(e.err)));
6478
6518
  silenceSentinel.on('nudge-error', (e) => notifier.record('nudge-error', 'active-silence', e.sessionName, e.err instanceof Error ? e.err.message : String(e.err)));
6479
6519
  silenceSentinel.start();
6480
6520
  silenceRecoveryActive = (s) => silenceSentinel.isRecoveryActive(s);
6521
+ const silenceMode = silenceAutoRecover ? ' — auto-heal LIVE' : '';
6481
6522
  console.log(pc.green(telegramEscalation
6482
- ? ' ActiveWorkSilenceSentinel enabled (silent-freeze watchdog — Telegram escalation ON, consolidated)'
6483
- : ' ActiveWorkSilenceSentinel enabled (silent-freeze watchdog — logs only, Telegram escalation OFF)'));
6523
+ ? ` ActiveWorkSilenceSentinel enabled (silent-freeze watchdog — Telegram escalation ON, consolidated${silenceMode})`
6524
+ : ` ActiveWorkSilenceSentinel enabled (silent-freeze watchdog — logs only, Telegram escalation OFF${silenceMode})`));
6484
6525
  }
6485
6526
  // ── ContextWedgeSentinel — transcript fast-fail wedges (thinking-block
6486
6527
  // 400 + AUP-rejection loop) ──
@@ -9810,7 +9851,9 @@ export async function startServer(options) {
9810
9851
  cpuCriticalLoadPerCore: rcfg?.cpuCriticalLoadPerCore ?? 1.5,
9811
9852
  });
9812
9853
  },
9813
- terminate: (id, reason) => sessionManager.terminateSession(id, reason),
9854
+ terminate: (id, reason, opts) => sessionManager.terminateSession(id, reason, {
9855
+ bypassActiveProcessKeep: opts?.bypassActiveProcessKeep,
9856
+ }),
9814
9857
  markReaping: (id) => sessionManager.markReaping(id),
9815
9858
  clearReaping: (id) => sessionManager.clearReaping(id),
9816
9859
  // Backs cpuAwareActiveProcessKeep: lets the reaper tell a wedged/idle