instar 0.28.91 → 0.28.93

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 (32) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +9 -0
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/InitiativeTracker.d.ts +7 -2
  5. package/dist/core/InitiativeTracker.d.ts.map +1 -1
  6. package/dist/core/InitiativeTracker.js.map +1 -1
  7. package/dist/core/ProjectDriftChecker.d.ts +200 -0
  8. package/dist/core/ProjectDriftChecker.d.ts.map +1 -0
  9. package/dist/core/ProjectDriftChecker.js +487 -0
  10. package/dist/core/ProjectDriftChecker.js.map +1 -0
  11. package/dist/core/SessionManager.d.ts +29 -8
  12. package/dist/core/SessionManager.d.ts.map +1 -1
  13. package/dist/core/SessionManager.js +89 -28
  14. package/dist/core/SessionManager.js.map +1 -1
  15. package/dist/core/StuckInputSentinel.d.ts +160 -0
  16. package/dist/core/StuckInputSentinel.d.ts.map +1 -0
  17. package/dist/core/StuckInputSentinel.js +315 -0
  18. package/dist/core/StuckInputSentinel.js.map +1 -0
  19. package/dist/core/types.d.ts +40 -0
  20. package/dist/core/types.d.ts.map +1 -1
  21. package/dist/core/types.js.map +1 -1
  22. package/dist/lifeline/ServerSupervisor.d.ts.map +1 -1
  23. package/dist/lifeline/ServerSupervisor.js +8 -0
  24. package/dist/lifeline/ServerSupervisor.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/data/builtin-manifest.json +3 -3
  27. package/upgrades/0.28.92.md +107 -0
  28. package/upgrades/0.28.93.md +126 -0
  29. package/upgrades/side-effects/0.28.91.md +11 -0
  30. package/upgrades/side-effects/multishot-stuck-input-recovery.md +151 -0
  31. package/upgrades/side-effects/project-scope-phase1b-pr1.md +252 -0
  32. package/upgrades/side-effects/stuck-input-sentinel.md +137 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiQH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAw4CD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA68JtE;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;AAkQH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAw4CD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAs9JtE;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"}
@@ -17,6 +17,7 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
17
17
  import { loadConfig, ensureStateDir, detectTmuxPath } from '../core/Config.js';
18
18
  import { SessionManager } from '../core/SessionManager.js';
19
19
  import { StateManager } from '../core/StateManager.js';
20
+ import { StuckInputSentinel } from '../core/StuckInputSentinel.js';
20
21
  import { JobScheduler } from '../scheduler/JobScheduler.js';
21
22
  import { IntegrationGate } from '../scheduler/IntegrationGate.js';
22
23
  import { JobRunHistory } from '../scheduler/JobRunHistory.js';
@@ -3056,6 +3057,13 @@ export async function startServer(options) {
3056
3057
  // lifeline to restart the server in a tight loop.
3057
3058
  await sessionManager.purgeDeadSessions();
3058
3059
  sessionManager.startMonitoring();
3060
+ // StuckInputSentinel — persistent, restart-safe recovery for tmux prompts
3061
+ // that hold text but never submitted Enter. Complements the in-process
3062
+ // verifyInjection timers (PR #159) which die when the server crashes.
3063
+ const stuckInputSentinel = new StuckInputSentinel(sessionManager, {
3064
+ stateDir: config.stateDir,
3065
+ });
3066
+ stuckInputSentinel.start();
3059
3067
  // Proactive resume heartbeat: every 60s, update the topic→UUID mapping
3060
3068
  // for all active topic-linked sessions. Ensures crash recovery via --resume.
3061
3069
  if (_topicResumeMap && (telegram || _slackAdapter)) {
@@ -6202,6 +6210,7 @@ export async function startServer(options) {
6202
6210
  if (telegram)
6203
6211
  await telegram.stop();
6204
6212
  sessionManager.stopMonitoring();
6213
+ stuckInputSentinel.stop();
6205
6214
  // Close SQLite databases before exit — prevents "mutex lock failed" crash
6206
6215
  // when better-sqlite3 destructors fire during process teardown.
6207
6216
  topicMemory?.close();