instar 1.3.648 → 1.3.650

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 (41) hide show
  1. package/dashboard/index.html +14 -14
  2. package/dist/commands/server.d.ts.map +1 -1
  3. package/dist/commands/server.js +3 -0
  4. package/dist/commands/server.js.map +1 -1
  5. package/dist/core/AutoUpdater.d.ts.map +1 -1
  6. package/dist/core/AutoUpdater.js +23 -3
  7. package/dist/core/AutoUpdater.js.map +1 -1
  8. package/dist/core/UpdateChecker.d.ts +12 -0
  9. package/dist/core/UpdateChecker.d.ts.map +1 -1
  10. package/dist/core/UpdateChecker.js +22 -0
  11. package/dist/core/UpdateChecker.js.map +1 -1
  12. package/dist/core/types.d.ts +10 -0
  13. package/dist/core/types.d.ts.map +1 -1
  14. package/dist/core/types.js.map +1 -1
  15. package/dist/monitoring/DegradationReporter.d.ts +18 -0
  16. package/dist/monitoring/DegradationReporter.d.ts.map +1 -1
  17. package/dist/monitoring/DegradationReporter.js +24 -0
  18. package/dist/monitoring/DegradationReporter.js.map +1 -1
  19. package/dist/monitoring/SystemReviewer.d.ts +22 -0
  20. package/dist/monitoring/SystemReviewer.d.ts.map +1 -1
  21. package/dist/monitoring/SystemReviewer.js +37 -0
  22. package/dist/monitoring/SystemReviewer.js.map +1 -1
  23. package/dist/monitoring/WorktreeMonitor.d.ts +13 -6
  24. package/dist/monitoring/WorktreeMonitor.d.ts.map +1 -1
  25. package/dist/monitoring/WorktreeMonitor.js +50 -33
  26. package/dist/monitoring/WorktreeMonitor.js.map +1 -1
  27. package/dist/server/routes.d.ts.map +1 -1
  28. package/dist/server/routes.js +8 -3
  29. package/dist/server/routes.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/data/builtin-manifest.json +48 -48
  32. package/upgrades/1.3.649.md +30 -0
  33. package/upgrades/1.3.650.md +21 -0
  34. package/upgrades/eli16/autoupdate-strand-detector.md +22 -0
  35. package/upgrades/eli16/dashboard-health-signal-polish.md +26 -0
  36. package/upgrades/eli16/systemreview-onboot-refresh.md +24 -0
  37. package/upgrades/eli16/worktree-monitor-async-git.md +24 -0
  38. package/upgrades/side-effects/autoupdate-strand-detector.md +36 -0
  39. package/upgrades/side-effects/dashboard-health-signal-polish.md +59 -0
  40. package/upgrades/side-effects/systemreview-onboot-refresh.md +39 -0
  41. package/upgrades/side-effects/worktree-monitor-async-git.md +39 -0
@@ -3928,6 +3928,14 @@
3928
3928
  renderSessionList();
3929
3929
  break;
3930
3930
 
3931
+ case 'paste_delivered':
3932
+ case 'paste_acknowledged':
3933
+ // Drop-zone paste refresh. Handled here (in the live ws router) so it
3934
+ // survives reconnects — the old parse-time addEventListener attached to a
3935
+ // null ws and threw "Cannot read properties of null (reading 'onmessage')".
3936
+ loadDzHistory();
3937
+ break;
3938
+
3931
3939
  case 'output':
3932
3940
  if (msg.session === activeSession) {
3933
3941
  renderTerminalOutput(msg.data);
@@ -4774,7 +4782,7 @@
4774
4782
  if (!token) return;
4775
4783
  fetch('/whatsapp/qr', { headers: { 'Authorization': `Bearer ${token}` } })
4776
4784
  .then(r => {
4777
- if (r.status === 503) { waConfigured = false; updateWaButton(); return null; }
4785
+ if (r.status === 503) { waConfigured = false; updateWaButton(); stopWaPolling(); return null; } // WhatsApp adapter absent — stop the 3s poll (it was spamming the console with ~20 503s/min)
4778
4786
  if (!r.ok) {
4779
4787
  // Surface auth/error state in QR panel instead of failing silently
4780
4788
  const msg = document.getElementById('waQrMsg');
@@ -9283,19 +9291,11 @@
9283
9291
  if (!document.hidden) pollVitalSigns();
9284
9292
  });
9285
9293
 
9286
- // Listen for WebSocket paste events
9287
- const origWsOnMessage = ws?.onmessage;
9288
- if (typeof ws !== 'undefined') {
9289
- const origOnMessage = ws.onmessage;
9290
- ws.addEventListener('message', function(event) {
9291
- try {
9292
- const msg = JSON.parse(event.data);
9293
- if (msg.type === 'paste_delivered' || msg.type === 'paste_acknowledged') {
9294
- loadDzHistory();
9295
- }
9296
- } catch {}
9297
- });
9298
- }
9294
+ // (WebSocket paste events — paste_delivered / paste_acknowledged — are handled in
9295
+ // handleMessage() above. The previous parse-time addEventListener here ran before
9296
+ // connectWebSocket() assigned ws, so ws was null and "ws.onmessage" threw a
9297
+ // TypeError on every load; routing it through the main ws handler also survives
9298
+ // reconnects.)
9299
9299
 
9300
9300
  </script>
9301
9301
  </body>
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA0CH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAwBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAuH7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA+EtD;;;;;;;;;;;;;;;;;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;AAy4CD,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,CA8eN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA01ftE;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;AA0CH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAwBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAuH7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA+EtD;;;;;;;;;;;;;;;;;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;AAy4CD,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,CA8eN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA61ftE;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"}
@@ -12592,6 +12592,9 @@ export async function startServer(options) {
12592
12592
  alertOnCritical: systemReviewConfig?.alertOnCritical,
12593
12593
  alertCooldownMs: systemReviewConfig?.alertCooldownMs,
12594
12594
  disabledProbes: systemReviewConfig?.disabledProbes,
12595
+ reviewOnStart: systemReviewConfig?.reviewOnStart,
12596
+ initialReviewDelayMs: systemReviewConfig?.initialReviewDelayMs,
12597
+ initialReviewStaleAfterMs: systemReviewConfig?.initialReviewStaleAfterMs,
12595
12598
  }, {
12596
12599
  stateDir: config.stateDir,
12597
12600
  sendAlert: telegram