instar 1.3.1588 → 1.3.1590

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 (43) hide show
  1. package/dashboard/console/console.css +4 -1
  2. package/dist/commands/server.d.ts.map +1 -1
  3. package/dist/commands/server.js +12 -9
  4. package/dist/commands/server.js.map +1 -1
  5. package/dist/core/AutonomousSessions.d.ts +6 -0
  6. package/dist/core/AutonomousSessions.d.ts.map +1 -1
  7. package/dist/core/AutonomousSessions.js +14 -0
  8. package/dist/core/AutonomousSessions.js.map +1 -1
  9. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  10. package/dist/core/PostUpdateMigrator.js +30 -1
  11. package/dist/core/PostUpdateMigrator.js.map +1 -1
  12. package/dist/core/WindowRunLivenessAuthority.d.ts.map +1 -1
  13. package/dist/core/WindowRunLivenessAuthority.js +8 -2
  14. package/dist/core/WindowRunLivenessAuthority.js.map +1 -1
  15. package/dist/data/standards-guard-index.json +1 -1
  16. package/dist/data/standards-guard-index.meta.json +2 -2
  17. package/dist/data/standards-registry.meta.json +1 -1
  18. package/dist/monitoring/ReapNotifier.d.ts +5 -1
  19. package/dist/monitoring/ReapNotifier.d.ts.map +1 -1
  20. package/dist/monitoring/ReapNotifier.js +13 -1
  21. package/dist/monitoring/ReapNotifier.js.map +1 -1
  22. package/dist/monitoring/StopNotifier.d.ts +44 -35
  23. package/dist/monitoring/StopNotifier.d.ts.map +1 -1
  24. package/dist/monitoring/StopNotifier.js +46 -28
  25. package/dist/monitoring/StopNotifier.js.map +1 -1
  26. package/dist/native/instar-desktop-host +0 -0
  27. package/dist/scaffold/templates.js +1 -1
  28. package/dist/server/routes.d.ts.map +1 -1
  29. package/dist/server/routes.js +49 -5
  30. package/dist/server/routes.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/data/builtin-manifest.json +63 -63
  33. package/src/data/standards-guard-index.json +1 -1
  34. package/src/data/standards-guard-index.meta.json +2 -2
  35. package/src/data/standards-registry.meta.json +1 -1
  36. package/src/scaffold/templates.ts +1 -1
  37. package/upgrades/1.3.1589.md +45 -0
  38. package/upgrades/1.3.1590.md +20 -0
  39. package/upgrades/side-effects/console-history-shrink-fix.eli16.md +11 -0
  40. package/upgrades/side-effects/console-history-shrink-fix.md +16 -0
  41. package/upgrades/side-effects/lifeline-noise-routine-notices.md +156 -0
  42. package/upgrades/side-effects/window-run-liveness-register-field-validation.eli16.md +27 -0
  43. package/upgrades/side-effects/window-run-liveness-register-field-validation.md +71 -0
@@ -989,6 +989,9 @@ button.run-mark:focus-visible { outline: 2px solid var(--accent); outline-offset
989
989
  .sess-tab[aria-pressed="true"] { border-color: var(--accent); color: var(--accent); background: var(--accent-wash); }
990
990
  .sess-history { flex: 1; min-width: 0; min-height: 320px; height: 52dvh; overflow-y: auto; padding: var(--s-3); background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--r-md); display: flex; flex-direction: column; gap: var(--s-3); }
991
991
  .sess-history[hidden], .sess-term[hidden] { display: none; }
992
+ /* A column flex box squeezes its children to fit; history items must keep their own height
993
+ and let the box scroll (tool lines clip their overflow, so without this they shrink to 0). */
994
+ .sess-history > * { flex-shrink: 0; }
992
995
  .sess-history-note { margin: 0; text-align: center; font-size: 13px; color: var(--text-muted); }
993
996
  .sess-h { max-width: 92%; }
994
997
  .sess-h-user { align-self: flex-end; background: var(--accent-wash); border: 1px solid var(--hairline); border-radius: var(--r-md); padding: var(--s-2) var(--s-3); }
@@ -1025,7 +1028,7 @@ button.run-mark:focus-visible { outline: 2px solid var(--accent); outline-offset
1025
1028
  .app:has(> .preview-banner) { --preview-h: 37px; }
1026
1029
  .sessions-page.has-open .sess-open { height: 100%; min-height: 0; }
1027
1030
  .sessions-page.has-open .sess-term-wrap { min-height: 0; }
1028
- .sessions-page.has-open .sess-term { height: auto; min-height: 0; }
1031
+ .sessions-page.has-open .sess-term, .sessions-page.has-open .sess-history { height: auto; min-height: 0; }
1029
1032
  .sessions-page.has-open .sess-composer { position: static; padding-bottom: 0; }
1030
1033
  }
1031
1034
  .sess-default-box:empty { display: none; }
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
@@ -19257,10 +19257,10 @@ export async function startServer(options) {
19257
19257
  }
19258
19258
  // notify-on-stop Layer B — surface a genuinely-stuck UNATTENDED stop to the
19259
19259
  // user (docs/specs/NOTIFY-ON-STOP-SPEC.md). The evaluate route feeds each
19260
- // decision to StopNotifier, which filters to the notify-worthy classes
19261
- // (shadow+continue / escalate), the attended-gate, and per-session dedup,
19262
- // then hands a coalesced one-liner to a dedicated SentinelNotifier sink
19263
- // (single lifeline topic, log-always — reuses the post-2026-05-22 discipline).
19260
+ // decision to StopNotifier, which keeps only shadow+continue stops of a
19261
+ // NAMED live autonomous run (attended-gate + per-session dedup), and sends
19262
+ // the notice to that run's own topic so a reply reaches it. Everything else
19263
+ // (`escalate`, unnamed runs) is log-only in logs/sentinel-events.jsonl.
19264
19264
  // Default ON (Justin's "tell me why it stopped"); requires telegram wired.
19265
19265
  let stopNotifier = null;
19266
19266
  {
@@ -19275,16 +19275,19 @@ export async function startServer(options) {
19275
19275
  }
19276
19276
  catch { /* best-effort */ }
19277
19277
  };
19278
- const send = (text) => sendConsolidatedWithSelfHeal(localTg, text, (line) => console.warn(pc.yellow(` [stop-notify] ${line}`)));
19279
- const { SentinelNotifier } = await import('../monitoring/SentinelNotifier.js');
19280
- const stopSink = new SentinelNotifier({ log: stopLog, sendConsolidated: send }, { telegramEscalation: true });
19281
19278
  const { StopNotifier } = await import('../monitoring/StopNotifier.js');
19282
- stopNotifier = new StopNotifier({ escalate: (name, text) => stopSink.escalate('stop-gate', name, text) }, {
19279
+ stopNotifier = new StopNotifier({
19280
+ notifyTopic: (topicId, sessionId, text) => {
19281
+ stopLog({ kind: 'escalated', sessionName: sessionId, detail: `topic ${topicId}: ${text}` });
19282
+ localTg.sendToTopic(Number(topicId), text).then(() => stopLog({ kind: 'escalation-sent', sessionName: sessionId, detail: `topic ${topicId}` }), (err) => stopLog({ kind: 'notify-error', sessionName: sessionId, detail: `topic ${topicId}: ${err instanceof Error ? err.message : String(err)}` }));
19283
+ },
19284
+ log: (kind, sessionId, detail) => stopLog({ kind, sessionName: sessionId, detail }),
19285
+ }, {
19283
19286
  enabled: true,
19284
19287
  unattendedOnly: nosCfg.unattendedOnly !== false,
19285
19288
  ...(typeof nosCfg.cooldownMs === 'number' ? { cooldownMs: nosCfg.cooldownMs } : {}),
19286
19289
  });
19287
- console.log(pc.green(' notify-on-stop Layer B: enabled (unjustified-stall heads-up — unattended-only, deduped, coalesced)'));
19290
+ console.log(pc.green(' notify-on-stop Layer B: enabled (named-run stall notice in the run\'s topic — unattended-only, deduped)'));
19288
19291
  }
19289
19292
  else {
19290
19293
  console.log(pc.dim(` notify-on-stop Layer B: ${nosEnabled ? 'idle (no telegram)' : 'disabled by config'}`));