instar 1.3.172 → 1.3.173

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.
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateGate.d.ts","sourceRoot":"","sources":["../../src/core/UpdateGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,0EAA0E;IAC1E,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yFAAyF;IACzF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gDAAgD;IAChD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,0CAA0C;IAC1C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,wDAAwD;IACxD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uDAAuD;IACvD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,IAAI,WAAW,EAAE,CAAC;IACrC,kBAAkB,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;CACnD;AAED,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC,SAAS,IAAI;QACX,aAAa,EAAE,kBAAkB,EAAE,CAAC;KACrC,CAAC;CACH;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,mBAAmB,CAAS;gBAExB,MAAM,CAAC,EAAE,gBAAgB;IASrC;;;;;OAKG;IACH,UAAU,CACR,cAAc,EAAE,kBAAkB,EAClC,cAAc,CAAC,EAAE,kBAAkB,GAAG,IAAI,GACzC,UAAU;IAgEb;;;;;;;;;;OAUG;IACH,mBAAmB,CACjB,cAAc,EAAE,kBAAkB,EAClC,cAAc,CAAC,EAAE,kBAAkB,GAAG,IAAI,GACzC,MAAM,EAAE;IAMX;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAkC/B,OAAO,CAAC,oBAAoB;IAO5B;;OAEG;IACH,SAAS,IAAI,gBAAgB;IAc7B;;;OAGG;IACH,sBAAsB,IAAI,OAAO;IAQjC;;;OAGG;IACH,sBAAsB,IAAI,OAAO;IAQjC;;OAEG;IACH,KAAK,IAAI,IAAI;CASd"}
1
+ {"version":3,"file":"UpdateGate.d.ts","sourceRoot":"","sources":["../../src/core/UpdateGate.ts"],"names":[],"mappings":"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"}
@@ -119,7 +119,16 @@ export class UpdateGate {
119
119
  nonBlockingJobSessions.push(session.name);
120
120
  continue;
121
121
  }
122
- const h = healthMap.get(session.name);
122
+ // Health is keyed by the tmux session name (the slug SessionMonitor
123
+ // tracks, e.g. "echo-codey-collaboration"), NOT the human-facing display
124
+ // name (e.g. "Codey Collaboration"). Look up by tmuxSession first, then
125
+ // fall back to name. Without the tmuxSession key, every interactive
126
+ // session misses the health map and hits the conservative "treat as
127
+ // active" default below — which silently turned the idle/dead exclusion
128
+ // into dead code and meant restart-when-idle (#41) never fired while ANY
129
+ // session existed (the day-long version-lag root cause).
130
+ const h = (session.tmuxSession ? healthMap.get(session.tmuxSession) : undefined) ??
131
+ healthMap.get(session.name);
123
132
  if (!h) {
124
133
  // No health data — be conservative, treat as active
125
134
  activeSessions.push(session.name);
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateGate.js","sourceRoot":"","sources":["../../src/core/UpdateGate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateGate.js","sourceRoot":"","sources":["../../src/core/UpdateGate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.172",
3
+ "version": "1.3.173",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-05-31T14:21:38.279Z",
5
- "instarVersion": "1.3.172",
4
+ "generatedAt": "2026-05-31T16:53:49.605Z",
5
+ "instarVersion": "1.3.173",
6
6
  "entryCount": 193,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -0,0 +1,47 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ Fixed a bug in the auto-update restart gate that kept agents running a stale
9
+ version far longer than intended. `UpdateGate` decides whether the box is "idle
10
+ enough" to restart onto a freshly-downloaded update by checking each running
11
+ session's health (`healthy` blocks; `idle`/`dead` don't). It looked that health
12
+ up by the session's **display name** while the health map is keyed by the **tmux
13
+ session name** (slug). The lookup always missed, so every interactive session was
14
+ conservatively treated as active — which made the idle/dead exclusion dead code
15
+ and meant the restart-when-idle path never fired while any session existed.
16
+
17
+ The gate now looks up health by `session.tmuxSession` (the key the health map
18
+ actually uses), falling back to the display name. Idle/dead sessions correctly
19
+ stop blocking restarts; genuinely-active (`healthy`) sessions still block, so live
20
+ work is never interrupted.
21
+
22
+ ## What to Tell Your User
23
+
24
+ Nothing required — this is invisible robustness. If they noticed their agent
25
+ "staying on an old version most of the day and only catching up overnight," or
26
+ the agent reporting more active sessions than seemed real, this is the fix:
27
+ updates now activate promptly when the box is genuinely idle.
28
+
29
+ ## Summary of New Capabilities
30
+
31
+ - Auto-update restarts activate promptly on a genuinely-idle box instead of
32
+ waiting for the overnight restart window (completes the restart-when-idle
33
+ intent).
34
+ - More accurate "active session" accounting in the restart gate (idle sessions
35
+ no longer inflate the blocker count).
36
+
37
+ ## Evidence
38
+
39
+ - Root cause proven from live state: `auto-updater.json.restartDeferral.currentBlockers`
40
+ held display names (`"Codey Collaboration"`, …) while `topic-session-registry.json`
41
+ keyed the same sessions by slug (`"echo-codey-collaboration"`, …) — a guaranteed
42
+ lookup miss.
43
+ - `tests/unit/UpdateGate.test.ts`: +5 tests using the production key shape; the
44
+ 3 status-discriminating ones were confirmed RED pre-fix, GREEN post-fix.
45
+ - `npx vitest run tests/unit/UpdateGate.test.ts tests/unit/AutoUpdater.test.ts` →
46
+ 29 passed. `npm run lint` clean. `tsc --noEmit` clean.
47
+ - Spec: `docs/specs/UPDATE-GATE-HEALTH-KEY-FIX-SPEC.md` (+ ELI16 companion).
@@ -0,0 +1,69 @@
1
+ # Side-Effects Review — UpdateGate health lookup keys by tmux session name
2
+
3
+ **Version / slug:** `update-gate-health-key-fix`
4
+ **Date:** 2026-05-31
5
+ **Author:** echo
6
+
7
+ ## Summary of the change
8
+
9
+ `UpdateGate.classifyRunningSessions()` looked up per-session health with
10
+ `healthMap.get(session.name)` (display name) against a map keyed by the tmux
11
+ session slug. The lookup always missed → every interactive session hit the
12
+ conservative "treat as active" default → the idle/dead exclusion was dead code →
13
+ restart-when-idle (#41) never fired. Fix: look up by `session.tmuxSession` first,
14
+ fall back to `session.name`.
15
+
16
+ **Files changed (source):**
17
+ - `src/core/UpdateGate.ts` — one lookup expression in `classifyRunningSessions`
18
+ (+ an explanatory comment). No signature, interface, or control-flow change.
19
+
20
+ **Files changed (tests):**
21
+ - `tests/unit/UpdateGate.test.ts` — +1 describe block (5 tests) exercising the
22
+ production key shape (health keyed by slug, `session.name` a display name).
23
+
24
+ ## Blast radius
25
+
26
+ `classifyRunningSessions` is the single private classifier behind both
27
+ `canRestart()` (the restart gate) and `getBlockingSessions()` (the pure idle
28
+ probe). Both are consumed only by `AutoUpdater` for restart gating. Nothing else
29
+ calls them. So the change's reach is exactly: "which running sessions are deemed
30
+ active for the purpose of deferring an auto-update restart."
31
+
32
+ ## Behavior delta
33
+
34
+ | Scenario | Before | After |
35
+ |---|---|---|
36
+ | Interactive session, health=`idle` (keyed by slug) | counted **active** (lookup miss → conservative) → blocks restart | correctly **idle** → does not block |
37
+ | Interactive session, health=`healthy` (keyed by slug) | counted active (right outcome, wrong reason) | counted active (correct reason) → still blocks |
38
+ | Interactive session, health=`dead`/`unresponsive` (slug) | counted active (miss) | correctly excluded / unresponsive |
39
+ | Session with genuinely no health entry | conservative active | conservative active (unchanged) |
40
+ | Health keyed by display name (legacy/test) | found | still found (fallback) |
41
+
42
+ Net: idle/dead sessions stop blocking restarts; **active (`healthy`) sessions
43
+ still block, so live work is never interrupted.**
44
+
45
+ ## Risks considered
46
+
47
+ - **False-idle interruption?** No. Only `idle`/`dead` health statuses become
48
+ non-blocking, and those are set by SessionMonitor's own thresholds (15-min
49
+ no-output for `idle`). A session actively producing output is `healthy` and
50
+ still blocks.
51
+ - **Name collision (a session's display name equals another's slug)?** The
52
+ fallback only fires when the slug lookup misses; display vs slug formats differ
53
+ (spaces/caps vs hyphenated-prefixed), so a cross-match is implausible and would
54
+ at worst reuse an existing same-status entry.
55
+ - **Restarts now happen more often** — that is the intended effect (#41). They
56
+ remain gated by genuinely-active sessions and the operator restart window.
57
+
58
+ ## Migration parity
59
+
60
+ None required. `src/core/UpdateGate.ts` is shipped library code, not an
61
+ agent-installed file (hook, config default, CLAUDE.md template, or skill). It
62
+ takes effect for every agent on the normal server restart that activates the new
63
+ version. No `PostUpdateMigrator` entry is needed.
64
+
65
+ ## Test evidence
66
+
67
+ `npx vitest run tests/unit/UpdateGate.test.ts tests/unit/AutoUpdater.test.ts` →
68
+ 29 passed. The 3 status-discriminating new tests were confirmed RED against the
69
+ pre-fix lookup and GREEN with the fix. `npm run lint` clean.