instar 0.9.13 → 0.9.15

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 (54) hide show
  1. package/dist/commands/init.d.ts.map +1 -1
  2. package/dist/commands/init.js +217 -4
  3. package/dist/commands/init.js.map +1 -1
  4. package/dist/commands/server.d.ts.map +1 -1
  5. package/dist/commands/server.js +72 -1
  6. package/dist/commands/server.js.map +1 -1
  7. package/dist/core/AdaptiveTrust.d.ts +180 -0
  8. package/dist/core/AdaptiveTrust.d.ts.map +1 -0
  9. package/dist/core/AdaptiveTrust.js +335 -0
  10. package/dist/core/AdaptiveTrust.js.map +1 -0
  11. package/dist/core/AutoUpdater.d.ts +10 -0
  12. package/dist/core/AutoUpdater.d.ts.map +1 -1
  13. package/dist/core/AutoUpdater.js +34 -0
  14. package/dist/core/AutoUpdater.js.map +1 -1
  15. package/dist/core/ExternalOperationGate.d.ts +204 -0
  16. package/dist/core/ExternalOperationGate.d.ts.map +1 -0
  17. package/dist/core/ExternalOperationGate.js +410 -0
  18. package/dist/core/ExternalOperationGate.js.map +1 -0
  19. package/dist/core/MessageSentinel.d.ts +116 -0
  20. package/dist/core/MessageSentinel.d.ts.map +1 -0
  21. package/dist/core/MessageSentinel.js +359 -0
  22. package/dist/core/MessageSentinel.js.map +1 -0
  23. package/dist/core/types.d.ts +45 -0
  24. package/dist/core/types.d.ts.map +1 -1
  25. package/dist/index.d.ts +9 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +4 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/lifeline/ServerSupervisor.d.ts +11 -0
  30. package/dist/lifeline/ServerSupervisor.d.ts.map +1 -1
  31. package/dist/lifeline/ServerSupervisor.js +57 -0
  32. package/dist/lifeline/ServerSupervisor.js.map +1 -1
  33. package/dist/lifeline/TelegramLifeline.d.ts.map +1 -1
  34. package/dist/lifeline/TelegramLifeline.js +1 -0
  35. package/dist/lifeline/TelegramLifeline.js.map +1 -1
  36. package/dist/messaging/TelegramAdapter.d.ts +29 -0
  37. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  38. package/dist/messaging/TelegramAdapter.js +174 -0
  39. package/dist/messaging/TelegramAdapter.js.map +1 -1
  40. package/dist/monitoring/SessionMonitor.d.ts +94 -0
  41. package/dist/monitoring/SessionMonitor.d.ts.map +1 -0
  42. package/dist/monitoring/SessionMonitor.js +221 -0
  43. package/dist/monitoring/SessionMonitor.js.map +1 -0
  44. package/dist/server/AgentServer.d.ts +3 -0
  45. package/dist/server/AgentServer.d.ts.map +1 -1
  46. package/dist/server/AgentServer.js +3 -0
  47. package/dist/server/AgentServer.js.map +1 -1
  48. package/dist/server/routes.d.ts +6 -0
  49. package/dist/server/routes.d.ts.map +1 -1
  50. package/dist/server/routes.js +142 -0
  51. package/dist/server/routes.js.map +1 -1
  52. package/package.json +1 -1
  53. package/upgrades/0.9.14.md +23 -0
  54. package/upgrades/0.9.15.md +60 -0
@@ -0,0 +1,60 @@
1
+ # Upgrade Guide: Promise Tracking & SessionMonitor
2
+
3
+ ## What Changed
4
+
5
+ ### Promise Tracking — No More Silent Agent Gaps
6
+
7
+ Previously, when an agent said "give me a couple minutes" and then went silent, the stall detection system didn't catch it. The agent's response cleared the stall tracker, and with no pending user message, no alarm fired. The agent could go silent indefinitely.
8
+
9
+ Now the system detects 13+ "work-in-progress" patterns (e.g., "give me a minute", "working on it", "investigating", "let me check") and starts a promise timer. If the agent doesn't follow through with a substantive response within the timeout (default: 10 minutes), the system triggers the triage nurse for recovery and notifies the user.
10
+
11
+ Promises auto-clear when the agent sends a real follow-up (long message >200 chars, or completion signals like "here's what I found", "done", "summary").
12
+
13
+ **New config option:**
14
+ ```json
15
+ {
16
+ "telegram": {
17
+ "promiseTimeoutMinutes": 10
18
+ }
19
+ }
20
+ ```
21
+ Set to `0` to disable. Default: 10 minutes.
22
+
23
+ ### SessionMonitor — Proactive Session Health Monitoring
24
+
25
+ A new monitoring layer that periodically checks all active sessions for health issues. Unlike StallTriageNurse (reactive — fires on unanswered messages) and SessionWatchdog (reactive — fires on stuck bash commands), the SessionMonitor is proactive. It catches dead, unresponsive, and idle sessions even when no user message triggered detection.
26
+
27
+ - Polls all active sessions every 60 seconds
28
+ - Detects three unhealthy states: dead (session stopped), unresponsive (user message unanswered >10 min), idle (no tmux output for 15+ min)
29
+ - Coordinates with StallTriageNurse for automated recovery
30
+ - 30-minute notification cooldown prevents alert spam — responsive but not overbearing
31
+
32
+ **New config section:**
33
+ ```json
34
+ {
35
+ "monitoring": {
36
+ "sessionMonitor": {
37
+ "enabled": true,
38
+ "pollIntervalSec": 60,
39
+ "idleThresholdMinutes": 15,
40
+ "notificationCooldownMinutes": 30
41
+ }
42
+ }
43
+ }
44
+ ```
45
+
46
+ Enabled by default when Telegram is configured. No action needed.
47
+
48
+ ## What to Tell Your User
49
+
50
+ - **Promise tracking**: "If I say 'give me a minute' and then go silent, the system will now detect this and either recover me or let you know what happened. No more unexplained silences after I promise to follow up."
51
+ - **Session monitoring**: "There's now a background health monitor watching all active sessions. If a session goes idle, becomes unresponsive, or dies while you're waiting, you'll get a proactive update instead of silence."
52
+
53
+ ## Summary of New Capabilities
54
+
55
+ | Capability | How to Use |
56
+ |-----------|-----------|
57
+ | Promise tracking | Automatic — detects "give me a minute" type messages and monitors for follow-through |
58
+ | Promise timeout config | Set `telegram.promiseTimeoutMinutes` in instar.json (default: 10, 0 to disable) |
59
+ | SessionMonitor | Automatic — polls all sessions every 60s for health issues |
60
+ | SessionMonitor config | Set `monitoring.sessionMonitor` in instar.json for poll interval, idle threshold, cooldown |