instar 1.3.655 → 1.3.656
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.
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +21 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/core/LiveTestHarness.d.ts +30 -1
- package/dist/core/LiveTestHarness.d.ts.map +1 -1
- package/dist/core/LiveTestHarness.js +33 -0
- package/dist/core/LiveTestHarness.js.map +1 -1
- package/dist/core/rateLimitFalsePositiveMatrix.d.ts +28 -0
- package/dist/core/rateLimitFalsePositiveMatrix.d.ts.map +1 -0
- package/dist/core/rateLimitFalsePositiveMatrix.js +74 -0
- package/dist/core/rateLimitFalsePositiveMatrix.js.map +1 -0
- package/dist/monitoring/CompactionSentinel.d.ts +9 -0
- package/dist/monitoring/CompactionSentinel.d.ts.map +1 -1
- package/dist/monitoring/CompactionSentinel.js +8 -0
- package/dist/monitoring/CompactionSentinel.js.map +1 -1
- package/dist/monitoring/QuotaCollector.d.ts.map +1 -1
- package/dist/monitoring/QuotaCollector.js +21 -8
- package/dist/monitoring/QuotaCollector.js.map +1 -1
- package/dist/monitoring/RateLimitSentinel.d.ts +25 -0
- package/dist/monitoring/RateLimitSentinel.d.ts.map +1 -1
- package/dist/monitoring/RateLimitSentinel.js +44 -0
- package/dist/monitoring/RateLimitSentinel.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.656.md +68 -0
- package/upgrades/side-effects/false-ratelimit-recovery-completed-sessions.md +113 -0
|
@@ -108,6 +108,14 @@ export class RateLimitSentinel extends EventEmitter {
|
|
|
108
108
|
const errorClass = opts?.errorClass ?? 'throttle';
|
|
109
109
|
if (this.active.has(sessionName))
|
|
110
110
|
return; // recovery in flight
|
|
111
|
+
// A finished/killed session is "idle at a prompt" with stale throttle scrollback;
|
|
112
|
+
// the idle-error detector mis-reports it. Never start a recovery (nor send the
|
|
113
|
+
// "throttled, backing off" notice) for a session that is not a live recovery
|
|
114
|
+
// target (live incident 2026-06-24).
|
|
115
|
+
if (this.deps.isSessionRecoverable && !this.deps.isSessionRecoverable(sessionName)) {
|
|
116
|
+
console.log(`[RateLimitSentinel] ignoring ${trigger} for "${sessionName}" — not a live recovery target (finished/killed/unknown)`);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
111
119
|
if (this.deferIf?.(sessionName))
|
|
112
120
|
return; // another recovery owns it (S6)
|
|
113
121
|
const lastReport = this.recentReports.get(sessionName);
|
|
@@ -159,6 +167,23 @@ export class RateLimitSentinel extends EventEmitter {
|
|
|
159
167
|
}
|
|
160
168
|
this.active.delete(sessionName);
|
|
161
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Silent terminal stop for a recovery whose session is no longer a live target
|
|
172
|
+
* (it finished/was killed mid-flight). Unlike `finalize('escalated', ...)` this
|
|
173
|
+
* emits NO user-facing escalation event — there is nothing to tell the user, the
|
|
174
|
+
* session simply ended. Audited to the log + the `rate-limit:aborted` event for
|
|
175
|
+
* observability; clears all state so a genuinely-new throttle can recover later.
|
|
176
|
+
*/
|
|
177
|
+
abort(state, reason) {
|
|
178
|
+
console.log(`[RateLimitSentinel] aborted "${state.sessionName}": ${reason}`);
|
|
179
|
+
this.emit('rate-limit:aborted', { ...state, reason });
|
|
180
|
+
// Clear timers + active state, but KEEP the recentReports entry: it acts as a
|
|
181
|
+
// dedupe cooldown so a session flapping around the liveness oracle (running →
|
|
182
|
+
// briefly-absent → running) cannot abort-then-immediately-rearm a fresh recovery
|
|
183
|
+
// on every flap. The entry ages out of the dedupe window normally.
|
|
184
|
+
// (spec-converge finding: deleting recentReports on abort enabled flap churn.)
|
|
185
|
+
this.clear(state.sessionName);
|
|
186
|
+
}
|
|
162
187
|
stop() {
|
|
163
188
|
for (const handle of this.timers.values())
|
|
164
189
|
this.clearTimer(handle);
|
|
@@ -195,6 +220,15 @@ export class RateLimitSentinel extends EventEmitter {
|
|
|
195
220
|
}
|
|
196
221
|
async attemptResume(state) {
|
|
197
222
|
this.timers.delete(state.sessionName);
|
|
223
|
+
// The session may have FINISHED while we were backing off. Re-check before
|
|
224
|
+
// injecting: a done session will never grow its jsonl, so continuing would
|
|
225
|
+
// burn the remaining attempts and ping the user about a session that is gone.
|
|
226
|
+
// Abort silently (no user-facing "still throttled" notice — there is nothing
|
|
227
|
+
// to tell the user; the session simply ended).
|
|
228
|
+
if (this.deps.isSessionRecoverable && !this.deps.isSessionRecoverable(state.sessionName)) {
|
|
229
|
+
this.abort(state, 'session no longer recoverable (finished/killed during backoff)');
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
198
232
|
state.attempts += 1;
|
|
199
233
|
state.lastInjectAt = this.now();
|
|
200
234
|
state.status = 'resuming';
|
|
@@ -223,6 +257,16 @@ export class RateLimitSentinel extends EventEmitter {
|
|
|
223
257
|
}
|
|
224
258
|
async verify(state) {
|
|
225
259
|
this.timers.delete(state.sessionName);
|
|
260
|
+
// The session may have FINISHED during the verify window. Without this check,
|
|
261
|
+
// verify() would see no jsonl growth (a done session never grows), and on the
|
|
262
|
+
// final attempt ESCALATE — sending the user a "Still can't get through after N
|
|
263
|
+
// tries" notice for a session that simply ended. Re-check and abort silently,
|
|
264
|
+
// matching the attemptResume() guard. (spec-converge finding: the guard was at
|
|
265
|
+
// report()/attemptResume() but not verify() — the finished-mid-verify hole.)
|
|
266
|
+
if (this.deps.isSessionRecoverable && !this.deps.isSessionRecoverable(state.sessionName)) {
|
|
267
|
+
this.abort(state, 'session no longer recoverable (finished/killed during verify window)');
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
226
270
|
const v = this.vendor(state.sessionName);
|
|
227
271
|
const current = this.readJsonlBaseline(state.sessionName);
|
|
228
272
|
const grew = state.baselineJsonlSize !== null &&
|
|
@@ -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,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-06-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-06-24T21:50:48.227Z",
|
|
5
|
+
"instarVersion": "1.3.656",
|
|
6
6
|
"entryCount": 202,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
A shared safety helper that rescues sessions blocked by an AI-provider throttle was
|
|
9
|
+
mis-firing: a session that had already FINISHED sits idle with the old throttle message
|
|
10
|
+
still on its screen, so the helper kept trying to "rescue" a session that was simply
|
|
11
|
+
done and pinged the user with *"the temporary server throttle should have cleared —
|
|
12
|
+
please continue where you left off."* Because the helper is shared, the false alarm
|
|
13
|
+
showed up fleet-wide (it was also seen on AI Guy).
|
|
14
|
+
|
|
15
|
+
The fix makes a finished/killed session structurally incapable of being a rescue target:
|
|
16
|
+
the helper now checks the session is still running at every point it can act (when it
|
|
17
|
+
decides to rescue, before each retry, AND before the "did it respond?" check) and bails
|
|
18
|
+
out silently if the session ended. When a session completes, the helpers stop watching
|
|
19
|
+
it immediately. A separate noisy "rate limit" log that fired on harmless quota-meter
|
|
20
|
+
hiccups is also quieted (it now only logs on a sustained problem).
|
|
21
|
+
|
|
22
|
+
It also adds a reusable prevention capability: the user-channel test harness can now
|
|
23
|
+
prove that NO unwanted background message (like the false throttle nudge) appears over a
|
|
24
|
+
time window — so this class of "a background feature messages you by mistake" is caught
|
|
25
|
+
by the ship gate before it reaches the fleet.
|
|
26
|
+
|
|
27
|
+
## What to Tell Your User
|
|
28
|
+
|
|
29
|
+
You should stop seeing phantom "throttle cleared, continue" messages that don't match
|
|
30
|
+
anything actually happening in your session. Real throttles are still handled — genuine
|
|
31
|
+
rescues still run and still tell you. Nothing you need to do; it takes effect on update.
|
|
32
|
+
|
|
33
|
+
## Summary of New Capabilities
|
|
34
|
+
|
|
35
|
+
- Finished/killed sessions can no longer trigger a false throttle/error recovery, and a
|
|
36
|
+
rescue whose session ends mid-flight stops silently instead of sending a stray
|
|
37
|
+
"still can't get through" message.
|
|
38
|
+
- (Agent/dev) The live-test harness gained an absence-assertion: a scenario can drive a
|
|
39
|
+
real conversation and assert that no message matching a pattern arrives within a
|
|
40
|
+
window, with the result feeding the existing "is this done?" gate.
|
|
41
|
+
|
|
42
|
+
## Evidence
|
|
43
|
+
|
|
44
|
+
**Reproduction (observed incident, 2026-06-24, topic 28130):** the Mac Mini's Claude
|
|
45
|
+
account was quota-walled, so its session for the topic finished. The finished session
|
|
46
|
+
sat idle with a throttle line still on its terminal; the RateLimitSentinel read that
|
|
47
|
+
stale scrollback, classified the done session as "throttled," and began resume attempts
|
|
48
|
+
that produced repeated *"the temporary server throttle should have cleared — please
|
|
49
|
+
continue where you left off."* nudges across every topic the Mini owned. Server logs
|
|
50
|
+
corroborated the second trigger: 716 "rate limit" hits were almost entirely
|
|
51
|
+
`QuotaCollector.collect.oauth: OAuth usage returned 429 retry-after: 0` — the quota-meter
|
|
52
|
+
endpoint briefly saying no, not a real rate limit (a genuine limit carries a meaningful
|
|
53
|
+
retry-after). One healthy working session was false-flagged 54 times, confirming the
|
|
54
|
+
detector — not any one agent — was the cause (it also surfaced on AI Guy).
|
|
55
|
+
|
|
56
|
+
**Before:** a completed session, having no new terminal output, was indistinguishable
|
|
57
|
+
from a throttled one and stayed a recovery target indefinitely (never cleared from the
|
|
58
|
+
topic map) → repeated phantom nudges; junk `retry-after:0` 429s logged as rate limits.
|
|
59
|
+
|
|
60
|
+
**After (verified):** the new `isSessionRecoverable` guard NO-OPS recovery for any session
|
|
61
|
+
not in the live running set, at all three fire points (decide-to-rescue, pre-retry,
|
|
62
|
+
pre-verify) — proven both-sides by `RateLimitSentinel-recoverable-guard` /
|
|
63
|
+
`CompactionSentinel-recoverable-guard` unit tests; the finished-during-verify race is
|
|
64
|
+
reproduced and locked by a dedicated test; the absence-assertion integration test drives
|
|
65
|
+
a regressed build (false nudge reintroduced) and confirms the done gate VETOES it. The
|
|
66
|
+
`retry-after:0` 429 is reclassified as a transient blip (log-level only). 16 unit + 2
|
|
67
|
+
integration tests, no regression across the existing watcher/quota/harness suites, clean
|
|
68
|
+
typecheck.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Side-Effects Review — Fix false rate-limit/error recovery on finished sessions + user-channel proof harness
|
|
2
|
+
|
|
3
|
+
**Version / slug:** `false-ratelimit-recovery-completed-sessions`
|
|
4
|
+
**Date:** `2026-06-24`
|
|
5
|
+
**Author:** Echo (autonomous, 8-hour run)
|
|
6
|
+
**Spec:** `docs/specs/false-ratelimit-recovery-completed-sessions.md` (review-convergence + approved)
|
|
7
|
+
**Second-pass reviewer:** REQUIRED (touches "sentinel"/"guard"/session-recovery) — verdict appended below.
|
|
8
|
+
|
|
9
|
+
## Summary of the change
|
|
10
|
+
|
|
11
|
+
A finished/idle session sitting at a prompt with a stale throttle string in its
|
|
12
|
+
scrollback was mistaken for a live-but-throttled session, so `RateLimitSentinel` (and
|
|
13
|
+
its sibling `CompactionSentinel`) ran a futile recovery and spammed the user with
|
|
14
|
+
`RATE_LIMIT_RESUME_NUDGE` ("the temporary server throttle should have cleared…").
|
|
15
|
+
Fleet-wide (shared detector). Fix makes a terminal session structurally incapable of
|
|
16
|
+
being a recovery target, and adds a reusable test capability that catches spurious
|
|
17
|
+
background messages before deploy.
|
|
18
|
+
|
|
19
|
+
Files modified:
|
|
20
|
+
- `src/monitoring/RateLimitSentinel.ts` — new optional `isSessionRecoverable?` dep,
|
|
21
|
+
consulted in `report()` (no-op + no notice for a non-recoverable session),
|
|
22
|
+
`attemptResume()` and `verify()` (silent `abort()` if the session finished mid-flight
|
|
23
|
+
— new `rate-limit:aborted` event; `abort()` keeps the `recentReports` dedupe entry as
|
|
24
|
+
a flap cooldown).
|
|
25
|
+
- `src/monitoring/CompactionSentinel.ts` — the SAME `isSessionRecoverable?` guard in
|
|
26
|
+
`report()`.
|
|
27
|
+
- `src/commands/server.ts` — defines `isSessionRecoverable = (name) =>
|
|
28
|
+
sessionManager.listRunningSessions().some(...)`; passes it to BOTH sentinels; adds a
|
|
29
|
+
`sessionComplete` handler that clears both sentinels (the completion cleanup that had
|
|
30
|
+
zero callers).
|
|
31
|
+
- `src/monitoring/QuotaCollector.ts` — the OAuth-429 `DegradationReport` now fires only
|
|
32
|
+
when the 3-strike breaker trips (kills the `retry-after:0` log spam); the error is
|
|
33
|
+
still recorded in `errors[]`, breaker + quota accounting unchanged.
|
|
34
|
+
- `src/core/LiveTestHarness.ts` — the prevention layer: an optional
|
|
35
|
+
`ChannelDriver.collectMessages` + a scenario `absenceWindowMs` + `expect.noMessageMatching`
|
|
36
|
+
/ `expect.replyMustNotContain`. An absence scenario collects every channel message over
|
|
37
|
+
the window and FAILs if any matches; an unsupported driver yields BLOCKED (never a
|
|
38
|
+
silent pass).
|
|
39
|
+
|
|
40
|
+
Files added:
|
|
41
|
+
- `src/core/rateLimitFalsePositiveMatrix.ts` — the rate-limit user-role scenario matrix
|
|
42
|
+
(happy-path reply + absence regression, optional Slack parity).
|
|
43
|
+
- `tests/unit/RateLimitSentinel-recoverable-guard.test.ts`,
|
|
44
|
+
`tests/unit/CompactionSentinel-recoverable-guard.test.ts`,
|
|
45
|
+
`tests/unit/rate-limit-false-positive-matrix.test.ts`,
|
|
46
|
+
`tests/unit/sentinel-recoverable-wiring.test.ts`,
|
|
47
|
+
`tests/integration/rate-limit-false-positive-prevention.test.ts`.
|
|
48
|
+
- Spec + ELI16 + convergence report.
|
|
49
|
+
|
|
50
|
+
## Decision-point inventory
|
|
51
|
+
|
|
52
|
+
- **Added** `isSessionRecoverable` guard — a bounded NO-OP that SUPPRESSES a recovery
|
|
53
|
+
action; it never adds an authoritative block over a user. Signal-vs-authority: it
|
|
54
|
+
removes a spurious action, the safe direction.
|
|
55
|
+
- **Added** harness absence assertion → a PASS/FAIL SIGNAL the already-dark, dry-run-
|
|
56
|
+
default `LiveTestGate` consumes. BLOCKED (not silent-pass) when unverifiable. No new
|
|
57
|
+
blocking authority.
|
|
58
|
+
- **Modified** `QuotaCollector` 429 path — a LOG-LEVEL decision only (report vs not);
|
|
59
|
+
accounting + breaker untouched.
|
|
60
|
+
|
|
61
|
+
## Side effects & blast radius
|
|
62
|
+
|
|
63
|
+
- **Behavior change (intended):** a finished/killed session no longer receives recovery
|
|
64
|
+
nudges; a recovery whose session ends mid-flight aborts silently (no escalation ping).
|
|
65
|
+
- **Preserved:** a genuinely-throttled RUNNING session still recovers — the notify
|
|
66
|
+
templates are byte-for-byte unchanged; dep-absent installs (bare/test) behave exactly
|
|
67
|
+
as before (regression-locked by tests).
|
|
68
|
+
- **Fail direction:** `listRunningSessions()` fails OPEN on a transient tmux error, so a
|
|
69
|
+
hiccup cannot drop a live session and suppress a real recovery; only genuine
|
|
70
|
+
termination removes it.
|
|
71
|
+
- **Machine-local:** each machine runs its own sentinels over its own running set; no
|
|
72
|
+
cross-machine state introduced. The QuotaCollector poll is already per-machine.
|
|
73
|
+
- **Residual (scoped to CMT-1785):** a still-RUNNING idle session with stale throttle
|
|
74
|
+
scrollback can still trigger one self-correcting "back online" message (not the
|
|
75
|
+
6-nudge spam). The known fix (adopt the watchdog `evaluateThrottleSettle` settle-gate
|
|
76
|
+
on the idle path) is tracked, driven evidence-first by the new absence harness.
|
|
77
|
+
|
|
78
|
+
## Migration parity
|
|
79
|
+
|
|
80
|
+
None required. All changes are server-internal wiring + a log-level change — no
|
|
81
|
+
`.claude/settings.json` hook, `.instar/config.json` default, CLAUDE.md template, or
|
|
82
|
+
built-in-skill change ships. Existing agents pick this up on the normal code-update path.
|
|
83
|
+
|
|
84
|
+
## Rollback
|
|
85
|
+
|
|
86
|
+
Each fix is independently revertible: F1 is additive (dep-absent = old behavior); F2 is
|
|
87
|
+
a pure cleanup addition; F4 is log-level only; the harness extension is additive (the
|
|
88
|
+
absence path only runs when a scenario sets `absenceWindowMs`).
|
|
89
|
+
|
|
90
|
+
## Tests
|
|
91
|
+
|
|
92
|
+
16 unit (guards both-sides + verify/abort lifecycle + harness absence + matrix + wiring-
|
|
93
|
+
integrity) + 2 integration (harness → signed artifact → `LiveTestGate` ALLOW on clean /
|
|
94
|
+
VETO on a reintroduced regression). No regression across the existing sentinel (96),
|
|
95
|
+
quota (53), and harness/gate (30) suites; clean `tsc`.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Second-pass review
|
|
100
|
+
|
|
101
|
+
**Concur with the review.** Independent audit of the diff verified: the
|
|
102
|
+
`isSessionRecoverable` guard uses running-set membership (the correct criterion) and
|
|
103
|
+
genuinely fails OPEN via `isSessionAlive`'s catch-returns-true path, so no genuine
|
|
104
|
+
recovery is suppressed by a transient tmux error — only actual termination removes a
|
|
105
|
+
session. The `verify()`/`attemptResume()` abort returns BEFORE any user-facing
|
|
106
|
+
`notify()` (no escalation/"still throttled" ping for a finished session); `abort()`
|
|
107
|
+
correctly keeps `recentReports` as the flap cooldown. The `sessionComplete` cleanup is
|
|
108
|
+
best-effort try/catch and cannot break completion. The QuotaCollector change preserves
|
|
109
|
+
the 429 signal in `errors[]` + the breaker, suppressing only transient per-poll log
|
|
110
|
+
spam (no other consumer keys on that feature). The notify templates are byte-for-byte
|
|
111
|
+
unchanged (a genuinely-throttled RUNNING session recovers as before). The harness
|
|
112
|
+
returns BLOCKED (never a silent pass) when absence is unverifiable. All 322 relevant
|
|
113
|
+
tests green. — independent second-pass reviewer, 2026-06-24.
|