instar 1.3.89 → 1.3.91

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":"RateLimitSentinel.d.ts","sourceRoot":"","sources":["../../src/monitoring/RateLimitSentinel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RateLimitSentinel.d.ts","sourceRoot":"","sources":["../../src/monitoring/RateLimitSentinel.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ import path from 'node:path';
41
41
  const DEFAULTS = {
42
42
  enabled: true,
43
43
  backoffScheduleMs: [30_000, 60_000, 120_000, 300_000, 300_000, 300_000],
44
+ transientApiBackoffScheduleMs: [5_000, 15_000, 30_000, 60_000, 120_000, 300_000],
44
45
  maxAttempts: 6,
45
46
  maxWindowMs: 30 * 60_000,
46
47
  verifyWindowMs: 25_000,
@@ -67,6 +68,7 @@ export class RateLimitSentinel extends EventEmitter {
67
68
  this.cfg = {
68
69
  enabled: config.enabled ?? DEFAULTS.enabled,
69
70
  backoffScheduleMs: config.backoffScheduleMs ?? DEFAULTS.backoffScheduleMs,
71
+ transientApiBackoffScheduleMs: config.transientApiBackoffScheduleMs ?? DEFAULTS.transientApiBackoffScheduleMs,
70
72
  maxAttempts: config.maxAttempts ?? DEFAULTS.maxAttempts,
71
73
  maxWindowMs: config.maxWindowMs ?? DEFAULTS.maxWindowMs,
72
74
  verifyWindowMs: config.verifyWindowMs ?? DEFAULTS.verifyWindowMs,
@@ -95,10 +97,11 @@ export class RateLimitSentinel extends EventEmitter {
95
97
  * recovery is already active, or one was reported within the dedupe window,
96
98
  * or deferIf says another recovery owns this session, this is a no-op.
97
99
  */
98
- report(sessionName, trigger) {
100
+ report(sessionName, trigger, opts) {
99
101
  if (!this.cfg.enabled)
100
102
  return;
101
103
  const now = this.now();
104
+ const errorClass = opts?.errorClass ?? 'throttle';
102
105
  if (this.active.has(sessionName))
103
106
  return; // recovery in flight
104
107
  if (this.deferIf?.(sessionName))
@@ -111,6 +114,7 @@ export class RateLimitSentinel extends EventEmitter {
111
114
  const state = {
112
115
  sessionName,
113
116
  trigger,
117
+ errorClass,
114
118
  detectedAt: now,
115
119
  attempts: 0,
116
120
  lastInjectAt: 0,
@@ -121,14 +125,17 @@ export class RateLimitSentinel extends EventEmitter {
121
125
  status: 'detected',
122
126
  };
123
127
  this.active.set(sessionName, state);
124
- console.log(`[RateLimitSentinel] detected throttle on "${sessionName}" via ${trigger}; ` +
128
+ console.log(`[RateLimitSentinel] detected ${errorClass} error on "${sessionName}" via ${trigger}; ` +
125
129
  `baseline jsonl=${state.baselineJsonlPath ? path.basename(state.baselineJsonlPath) : 'none'} ` +
126
130
  `size=${state.baselineJsonlSize ?? 'n/a'}`);
127
131
  this.emit('rate-limit:detected', state);
128
- // Immediate user notice (fixed template, no LLM).
129
- void this.notify(sessionName, "Heads up — Claude hit a temporary server-side throttle on Anthropic's side " +
130
- '(not your usage limit). I\'m backing off and will keep retrying. ' +
131
- "You haven't been dropped — I'll check back in.");
132
+ // Immediate user notice (fixed template, no LLM), worded per error class.
133
+ void this.notify(sessionName, errorClass === 'transient-api'
134
+ ? "Heads up — Claude hit a transient API error (likely a brief server-side blip). " +
135
+ "I'm waiting a moment and will retry. You haven't been dropped — I'll pick up where I left off."
136
+ : "Heads up — Claude hit a temporary server-side throttle on Anthropic's side " +
137
+ '(not your usage limit). I\'m backing off and will keep retrying. ' +
138
+ "You haven't been dropped — I'll check back in.");
132
139
  state.lastCheckInAt = now;
133
140
  this.scheduleBackoff(state);
134
141
  }
@@ -161,17 +168,17 @@ export class RateLimitSentinel extends EventEmitter {
161
168
  listActive() {
162
169
  return [...this.active.values()].map(s => ({
163
170
  ...s,
164
- nextBackoffMs: this.backoffFor(s.attempts),
171
+ nextBackoffMs: this.backoffFor(s.attempts, s.errorClass),
165
172
  }));
166
173
  }
167
- backoffFor(attempts) {
168
- const sched = this.cfg.backoffScheduleMs;
174
+ backoffFor(attempts, errorClass = 'throttle') {
175
+ const sched = errorClass === 'transient-api' ? this.cfg.transientApiBackoffScheduleMs : this.cfg.backoffScheduleMs;
169
176
  if (sched.length === 0)
170
177
  return 0;
171
178
  return sched[Math.min(attempts, sched.length - 1)];
172
179
  }
173
180
  scheduleBackoff(state) {
174
- const backoffMs = this.backoffFor(state.attempts);
181
+ const backoffMs = this.backoffFor(state.attempts, state.errorClass);
175
182
  state.status = 'backing-off';
176
183
  const handle = this.setTimer(() => {
177
184
  this.attemptResume(state).catch(err => {
@@ -195,7 +202,7 @@ export class RateLimitSentinel extends EventEmitter {
195
202
  }
196
203
  console.log(`[RateLimitSentinel] resume-attempted on "${state.sessionName}" ` +
197
204
  `(attempt ${state.attempts}/${this.cfg.maxAttempts}, accepted=${accepted})`);
198
- this.emit('rate-limit:resuming', { ...state, backoffMs: this.backoffFor(state.attempts - 1) });
205
+ this.emit('rate-limit:resuming', { ...state, backoffMs: this.backoffFor(state.attempts - 1, state.errorClass) });
199
206
  if (!accepted) {
200
207
  // No pending work / session gone / injection blocked — nothing to recover.
201
208
  this.finalize(state, 'escalated', 'resumeFn declined (no pending work or session gone)');
@@ -222,7 +229,9 @@ export class RateLimitSentinel extends EventEmitter {
222
229
  const delta = (current?.size ?? 0) - (state.baselineJsonlSize ?? 0);
223
230
  console.log(`[RateLimitSentinel] recovered "${state.sessionName}" after ${state.attempts} attempt(s) (jsonl grew by ${delta} bytes)`);
224
231
  this.emit('rate-limit:recovered', { ...state, jsonlDelta: delta });
225
- void this.notify(state.sessionName, "Back online — Anthropic's throttle cleared. Continuing where I left off.");
232
+ void this.notify(state.sessionName, state.errorClass === 'transient-api'
233
+ ? 'Back online — the API error cleared. Continuing where I left off.'
234
+ : "Back online — Anthropic's throttle cleared. Continuing where I left off.");
226
235
  this.finalize(state, 'recovered');
227
236
  return;
228
237
  }
@@ -244,8 +253,10 @@ export class RateLimitSentinel extends EventEmitter {
244
253
  const now = this.now();
245
254
  if (now - state.lastCheckInAt >= this.cfg.checkInEveryMs) {
246
255
  state.lastCheckInAt = now;
247
- void this.notify(state.sessionName, `Still throttled on Anthropic's side — next retry in ${humanizeMs(this.backoffFor(state.attempts))}. ` +
248
- "Still here, haven't dropped you.");
256
+ void this.notify(state.sessionName, state.errorClass === 'transient-api'
257
+ ? `Still hitting an API error — next retry in ${humanizeMs(this.backoffFor(state.attempts, state.errorClass))}. Still here, haven't dropped you.`
258
+ : `Still throttled on Anthropic's side — next retry in ${humanizeMs(this.backoffFor(state.attempts, state.errorClass))}. ` +
259
+ "Still here, haven't dropped you.");
249
260
  }
250
261
  this.scheduleBackoff(state);
251
262
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RateLimitSentinel.js","sourceRoot":"","sources":["../../src/monitoring/RateLimitSentinel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RateLimitSentinel.js","sourceRoot":"","sources":["../../src/monitoring/RateLimitSentinel.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.89",
3
+ "version": "1.3.91",
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-29T13:36:49.002Z",
5
- "instarVersion": "1.3.89",
4
+ "generatedAt": "2026-05-29T14:59:35.089Z",
5
+ "instarVersion": "1.3.91",
6
6
  "entryCount": 193,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -11,7 +11,7 @@
11
11
  "domain": "identity",
12
12
  "sourcePath": "src/core/PostUpdateMigrator.ts",
13
13
  "installedPath": ".instar/hooks/instar/session-start.sh",
14
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
14
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
15
15
  "since": "2025-01-01"
16
16
  },
17
17
  "hook:dangerous-command-guard": {
@@ -20,7 +20,7 @@
20
20
  "domain": "safety",
21
21
  "sourcePath": "src/core/PostUpdateMigrator.ts",
22
22
  "installedPath": ".instar/hooks/instar/dangerous-command-guard.sh",
23
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
23
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
24
24
  "since": "2025-01-01"
25
25
  },
26
26
  "hook:grounding-before-messaging": {
@@ -29,7 +29,7 @@
29
29
  "domain": "safety",
30
30
  "sourcePath": "src/core/PostUpdateMigrator.ts",
31
31
  "installedPath": ".instar/hooks/instar/grounding-before-messaging.sh",
32
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
32
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
33
33
  "since": "2025-01-01"
34
34
  },
35
35
  "hook:compaction-recovery": {
@@ -38,7 +38,7 @@
38
38
  "domain": "identity",
39
39
  "sourcePath": "src/core/PostUpdateMigrator.ts",
40
40
  "installedPath": ".instar/hooks/instar/compaction-recovery.sh",
41
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
41
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
42
42
  "since": "2025-01-01"
43
43
  },
44
44
  "hook:external-operation-gate": {
@@ -47,7 +47,7 @@
47
47
  "domain": "safety",
48
48
  "sourcePath": "src/core/PostUpdateMigrator.ts",
49
49
  "installedPath": ".instar/hooks/instar/external-operation-gate.js",
50
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
50
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
51
51
  "since": "2025-01-01"
52
52
  },
53
53
  "hook:deferral-detector": {
@@ -56,7 +56,7 @@
56
56
  "domain": "safety",
57
57
  "sourcePath": "src/core/PostUpdateMigrator.ts",
58
58
  "installedPath": ".instar/hooks/instar/deferral-detector.js",
59
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
59
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
60
60
  "since": "2025-01-01"
61
61
  },
62
62
  "hook:post-action-reflection": {
@@ -65,7 +65,7 @@
65
65
  "domain": "evolution",
66
66
  "sourcePath": "src/core/PostUpdateMigrator.ts",
67
67
  "installedPath": ".instar/hooks/instar/post-action-reflection.js",
68
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
68
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
69
69
  "since": "2025-01-01"
70
70
  },
71
71
  "hook:external-communication-guard": {
@@ -74,7 +74,7 @@
74
74
  "domain": "safety",
75
75
  "sourcePath": "src/core/PostUpdateMigrator.ts",
76
76
  "installedPath": ".instar/hooks/instar/external-communication-guard.js",
77
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
77
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
78
78
  "since": "2025-01-01"
79
79
  },
80
80
  "hook:scope-coherence-collector": {
@@ -83,7 +83,7 @@
83
83
  "domain": "coherence",
84
84
  "sourcePath": "src/core/PostUpdateMigrator.ts",
85
85
  "installedPath": ".instar/hooks/instar/scope-coherence-collector.js",
86
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
86
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
87
87
  "since": "2025-01-01"
88
88
  },
89
89
  "hook:scope-coherence-checkpoint": {
@@ -92,7 +92,7 @@
92
92
  "domain": "coherence",
93
93
  "sourcePath": "src/core/PostUpdateMigrator.ts",
94
94
  "installedPath": ".instar/hooks/instar/scope-coherence-checkpoint.js",
95
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
95
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
96
96
  "since": "2025-01-01"
97
97
  },
98
98
  "hook:free-text-guard": {
@@ -101,7 +101,7 @@
101
101
  "domain": "safety",
102
102
  "sourcePath": "src/core/PostUpdateMigrator.ts",
103
103
  "installedPath": ".instar/hooks/instar/free-text-guard.sh",
104
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
104
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
105
105
  "since": "2025-01-01"
106
106
  },
107
107
  "hook:claim-intercept": {
@@ -110,7 +110,7 @@
110
110
  "domain": "coherence",
111
111
  "sourcePath": "src/core/PostUpdateMigrator.ts",
112
112
  "installedPath": ".instar/hooks/instar/claim-intercept.js",
113
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
113
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
114
114
  "since": "2025-01-01"
115
115
  },
116
116
  "hook:claim-intercept-response": {
@@ -119,7 +119,7 @@
119
119
  "domain": "coherence",
120
120
  "sourcePath": "src/core/PostUpdateMigrator.ts",
121
121
  "installedPath": ".instar/hooks/instar/claim-intercept-response.js",
122
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
122
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
123
123
  "since": "2025-01-01"
124
124
  },
125
125
  "hook:stop-gate-router": {
@@ -128,7 +128,7 @@
128
128
  "domain": "safety",
129
129
  "sourcePath": "src/core/PostUpdateMigrator.ts",
130
130
  "installedPath": ".instar/hooks/instar/stop-gate-router.js",
131
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
131
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
132
132
  "since": "2025-01-01"
133
133
  },
134
134
  "hook:auto-approve-permissions": {
@@ -137,7 +137,7 @@
137
137
  "domain": "safety",
138
138
  "sourcePath": "src/core/PostUpdateMigrator.ts",
139
139
  "installedPath": ".instar/hooks/instar/auto-approve-permissions.js",
140
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
140
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
141
141
  "since": "2025-01-01"
142
142
  },
143
143
  "job:health-check": {
@@ -1465,7 +1465,7 @@
1465
1465
  "type": "subsystem",
1466
1466
  "domain": "sessions",
1467
1467
  "sourcePath": "src/core/SessionManager.ts",
1468
- "contentHash": "abb9f617bbb0568510470625c390bee45604b421cf48f6fda263c5e8c311f5d9",
1468
+ "contentHash": "c5d5f33e8793229dea8d9a7f3ee2073c0cd19bd8885425d245d57b6bc9076521",
1469
1469
  "since": "2025-01-01"
1470
1470
  },
1471
1471
  "subsystem:auto-updater": {
@@ -1489,7 +1489,7 @@
1489
1489
  "type": "subsystem",
1490
1490
  "domain": "updates",
1491
1491
  "sourcePath": "src/core/PostUpdateMigrator.ts",
1492
- "contentHash": "1fd1742471085a3b4ea20557d99aee966ea8bc4d92582b51cf18791ce76429d3",
1492
+ "contentHash": "02e081441560e8b3a82c3cd7ed647ff0cb8f7042b166a4ab1241a86d8c113883",
1493
1493
  "since": "2025-01-01"
1494
1494
  },
1495
1495
  "subsystem:scheduler": {
@@ -0,0 +1,35 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- bump: patch -->
4
+
5
+ ## What Changed
6
+
7
+ The self-discovery guidance for capability checks now matches the authenticated
8
+ server contract. Existing instructions told agents to call the capabilities
9
+ endpoint without an authorization header, but the endpoint requires the agent's
10
+ Bearer token. Agents following the documented "know before you claim" step could
11
+ therefore get a 401 instead of the capability matrix.
12
+
13
+ Fresh initialization now renders the authenticated capabilities command, and the
14
+ post-update migrator both adds the authenticated form for stale files missing the
15
+ section and rewrites legacy unauthenticated capability-check commands in
16
+ existing CLAUDE.md files.
17
+
18
+ ## What to Tell Your User
19
+
20
+ - **Self-discovery now uses the working authenticated request**: "When I check
21
+ what I can actually do, my local instructions now use the same authenticated
22
+ capabilities call the server expects, so the documented verification step no
23
+ longer fails before it can answer."
24
+
25
+ ## Summary of New Capabilities
26
+
27
+ | Capability | How to Use |
28
+ |-----------|------------|
29
+ | Authenticated self-discovery guidance | Existing agents receive the corrected capability-check instruction on update; new agents get it during initialization |
30
+
31
+ ## Evidence
32
+
33
+ Unit coverage verifies the post-update migrator rewrites legacy unauthenticated
34
+ capabilities checks and adds the self-discovery section with the authenticated
35
+ form when it is missing.
@@ -0,0 +1,54 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- bump: patch -->
4
+
5
+ ## What Changed
6
+
7
+ The automatic recovery nudge that restarts a session after a transient API error
8
+ (e.g. "API Error: 500") is now **re-armable**. Previously a session was nudged at
9
+ most once for its entire lifetime — the guard that prevented infinite nudge loops
10
+ was only cleared when the session ended. A long-running autonomous session that hit
11
+ a SECOND transient API error was therefore never re-nudged: it sat idle at the
12
+ prompt until a human poked it, and was eventually zombie-killed, silently losing the
13
+ run.
14
+
15
+ Now the nudge guard is per-idle-episode: it is cleared the moment the session goes
16
+ active again, so each fresh API-error episode gets its own nudge. A lifetime cap
17
+ (50 nudges per session) bounds a session that flaps without ever recovering, so it
18
+ still falls through to the normal zombie-kill path rather than being nudged forever.
19
+
20
+ This closes a gap the in-session autonomous Stop hook structurally cannot cover — the
21
+ Stop hook only fires on a clean turn end, never on an errored turn, so the recovery
22
+ has to come from the out-of-process session monitor where this nudge already lived.
23
+
24
+ Beyond the re-arm, the **intelligent backoff recovery** that already existed for
25
+ rate-limit/throttle errors (RateLimitSentinel: back off before retrying, tell you
26
+ you're not dropped, verify the retry took, escalate if it never does) now covers the
27
+ **whole class of transient API errors** — 500/502/503, overloaded, timeouts, connection
28
+ drops — not just rate limits. A generic API error gets the same intelligent treatment,
29
+ with a fast first retry (≈5s, since these usually clear quickly) escalating gently if it
30
+ persists. Future-proof: the error set is driven by one pattern list, so adding a new
31
+ transient pattern automatically routes it through the backoff recovery.
32
+
33
+ ## What to Tell Your User
34
+
35
+ - **Long autonomous runs now survive repeated transient API hiccups on their own**:
36
+ "If the AI service has a momentary error mid-task, I tap myself back into work — and
37
+ now I do that every time it happens during a long run, not just the first time. So a
38
+ multi-hour autonomous job won't silently freeze after a second hiccup anymore."
39
+
40
+ ## Summary of New Capabilities
41
+
42
+ | Capability | How to Use |
43
+ |-----------|------------|
44
+ | Re-armable API-error recovery nudge | Automatic — every agent gets it on update. A session idle after a transient API error is re-nudged to continue, once per error episode, capped at 50 per session lifetime. No config. |
45
+
46
+ ## Evidence
47
+
48
+ Unit coverage in `tests/unit/session-error-nudge.test.ts` exercises the pure
49
+ `shouldErrorNudge()` gate across every branch (already-nudged-this-episode → skip,
50
+ fresh episode under the cap → nudge, at/over the lifetime cap → skip, re-arm after
51
+ recovery → nudge again) and pins the structural invariants (the episode guard is
52
+ cleared in the "Session is active" branch; the production path routes through the
53
+ gate). The SessionManager behavioral + idle/kill suites remain green — no regression.
54
+ Spec: `docs/specs/SESSION-ERROR-NUDGE-REARM-SPEC.md`.
@@ -0,0 +1,31 @@
1
+ # Side Effects Review — capabilities auth self-discovery
2
+
3
+ ## Change
4
+
5
+ Align agent-facing self-discovery instructions with the runtime server contract:
6
+ capability checks require the configured Bearer token.
7
+
8
+ ## Surfaces Touched
9
+
10
+ - Fresh init CLAUDE.md generation.
11
+ - Post-update CLAUDE.md migration for existing agents.
12
+ - Built-in manifest regeneration for changed source templates.
13
+
14
+ ## Expected Effects
15
+
16
+ - Agents following "know before you claim" get the capability matrix instead of
17
+ an authentication error.
18
+ - Existing stale CLAUDE.md files are corrected during update without requiring a
19
+ full re-init.
20
+
21
+ ## Risk Review
22
+
23
+ - The change does not relax API auth or expose capability data publicly.
24
+ - The migrator rewrite targets only unauthenticated localhost capabilities curl
25
+ commands and replaces them with the authenticated form for the configured
26
+ server port.
27
+ - Existing already-authenticated commands are left unchanged.
28
+
29
+ ## Validation
30
+
31
+ - Focused unit coverage covers both rewrite and missing-section insertion.
@@ -0,0 +1,17 @@
1
+ # Side effects — Session error-nudge re-arm (fleet-wide fix)
2
+
3
+ ## What this changes
4
+ `src/core/SessionManager.ts` — the post-API-error idle nudge is now re-armable instead of once-per-session-forever.
5
+ - `errorNudgedSessions` is now a per-idle-episode flag: set on nudge, CLEARED in the existing "Session is active" branch (recovery), so a long-running session that hits a SECOND transient API error is nudged again.
6
+ - New `errorNudgeTotal: Map` + `MAX_ERROR_NUDGES_PER_SESSION` (50) bound runaway: a session flapping error→nudge→error without truly recovering stops being nudged and falls through to the normal zombie-kill path. Cleared on `sessionComplete`.
7
+ - New pure exported `shouldErrorNudge(armedThisEpisode, totalNudges, max)` is the gate the production code routes through (unit-testable boundary).
8
+
9
+ ## Why
10
+ A 2026-05-29 autonomous run was found idle after an `API Error: 500` — the SECOND such stop. Root cause: the nudge fired once per session, ever (the guard set was only cleared on sessionComplete). The in-session autonomous Stop hook cannot cover this (it fires only on a clean Stop, not an errored turn). Spec: docs/specs/SESSION-ERROR-NUDGE-REARM-SPEC.md.
11
+
12
+ ## Risk / blast radius
13
+ Low + bounded. Behavior change is strictly MORE recovery (re-nudge on a fresh error episode) with a hard lifetime cap (50) so it can never nudge forever or burn quota. The rate-limit/throttle path is untouched (still hands off to RateLimitSentinel, consumes no nudge token). Server-side code → deploys fleet-wide via the normal release/auto-update; no agent-file or config change, no migrator entry needed.
14
+
15
+ ## Tests
16
+ - `tests/unit/session-error-nudge.test.ts` — +behavioral coverage of shouldErrorNudge (both sides of every branch: armed/not-armed, under/over cap, re-arm-after-recovery) + structural pins (episode flag cleared in the active branch; gate routes through shouldErrorNudge).
17
+ - SessionManager-adjacent suites (behavioral, terminate, zombie-kill-topic-binding, reap-detect, injection, multishot-recovery) all green — no regression to the idle/kill path.
@@ -0,0 +1,18 @@
1
+ # Side effects — Generalize backoff recovery to the whole transient-API-error class
2
+
3
+ ## What this changes
4
+ Extends the intelligent throttle-recovery lifecycle (RateLimitSentinel) to cover ALL transient API errors (500/502/503, overloaded, timeouts, connection drops), not just rate limits — the 2026-05-29 future-proofing ask (topic 13481). Builds on the per-episode nudge re-arm (same branch).
5
+
6
+ - `src/monitoring/RateLimitSentinel.ts` — new `ApiErrorClass = 'throttle' | 'transient-api'`. `report(name, trigger, { errorClass })` (default 'throttle' → fully back-compatible). Per-class backoff schedule (`transientApiBackoffScheduleMs` = [5s,15s,30s,60s,2m,5m], fast first retry) + per-class user wording in every notice. Lifecycle (backoff→resume→verify→escalate→zombie-veto) unchanged.
7
+ - `src/core/SessionManager.ts` — the generic `TERMINAL_ERROR_PATTERNS` idle path now hands off to the sentinel via a new `apiErrorAtIdle` event when a listener is wired (production), mirroring the existing `rateLimitedAtIdle` handoff; the re-armable immediate nudge remains the fallback when no sentinel is wired (bare/test).
8
+ - `src/commands/server.ts` — wires `sessionManager.on('apiErrorAtIdle', name => rateLimitSentinel.report(name, 'idle-error', { errorClass: 'transient-api' }))`.
9
+
10
+ ## Why
11
+ A generic `API Error: 500` previously only got SessionManager's immediate single nudge — no backoff, no verify, no escalate — while the intelligent RateLimitSentinel was scoped to rate-limit/throttle only. Now a 500 rides the same proven backoff→verify→escalate lifecycle. Spec: docs/specs/SESSION-ERROR-NUDGE-REARM-SPEC.md (Part 2).
12
+
13
+ ## Risk / blast radius
14
+ Low + back-compatible. `errorClass` defaults to 'throttle' so all existing rate-limit behavior is byte-identical (14 existing RateLimitSentinel tests unchanged + green). The generic-error handoff only changes behavior when an `apiErrorAtIdle` listener is wired; otherwise the (now re-armable) immediate nudge fallback runs. Future-proof: driven by the existing TERMINAL_ERROR_PATTERNS list. Server-side → deploys fleet-wide via release.
15
+
16
+ ## Tests
17
+ - `tests/unit/RateLimitSentinel.test.ts` — +4 transient-api tests (fast 5s first backoff vs 30s throttle; transient-API wording; full lifecycle→recovered; state errorClass + listActive short schedule). Throttle suite unchanged.
18
+ - `tests/unit/session-error-nudge.test.ts` — +2: generic-error idle path defers to the sentinel via apiErrorAtIdle when wired; re-armable nudge is the fallback. Plus the Part-1 re-arm + cap behavioral tests.