instar 1.3.135 → 1.3.136
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 +3 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/monitoring/CompactionSentinel.d.ts +9 -0
- package/dist/monitoring/CompactionSentinel.d.ts.map +1 -1
- package/dist/monitoring/CompactionSentinel.js +10 -0
- package/dist/monitoring/CompactionSentinel.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.136.md +50 -0
- package/upgrades/side-effects/compaction-sentinel-codex-parity.md +60 -0
|
@@ -67,6 +67,15 @@ export interface CompactionSentinelDeps {
|
|
|
67
67
|
* recovered. Return undefined for sessions whose uuid isn't known yet.
|
|
68
68
|
*/
|
|
69
69
|
getClaudeSessionId?: (sessionName: string) => string | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* Resolve a session's framework ('codex-cli' | 'claude-code' | undefined). When it
|
|
72
|
+
* returns 'codex-cli', recovery-verification reads the newest codex ROLLOUT jsonl
|
|
73
|
+
* (account-wide growth signal) instead of the Claude transcript. Absent/non-codex →
|
|
74
|
+
* the unchanged Claude path is used (Claude behavior byte-for-byte preserved).
|
|
75
|
+
*/
|
|
76
|
+
getSessionFramework?: (sessionName: string) => string | undefined;
|
|
77
|
+
/** Override $CODEX_HOME (tests). Defaults to ~/.codex. Only used for codex sessions. */
|
|
78
|
+
codexHome?: string;
|
|
70
79
|
/**
|
|
71
80
|
* Override for the JSONL lookup root. Primarily for tests. Defaults to
|
|
72
81
|
* `$HOME/.claude/projects/<project-hash>`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompactionSentinel.d.ts","sourceRoot":"","sources":["../../src/monitoring/CompactionSentinel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"CompactionSentinel.d.ts","sourceRoot":"","sources":["../../src/monitoring/CompactionSentinel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,eAAe,GAAG,eAAe,GAAG,MAAM,CAAC;AAE1F,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,UAAU,GACV,WAAW,GACX,QAAQ,CAAC;AAEb,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3E;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAEjE;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAElE,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IAE3C;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IAErD,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAEnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACzE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,wBAAwB;IACvC,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAUD,MAAM,WAAW,wBAAwB;IACvC,qBAAqB,EAAE,CAAC,aAAa,CAAC,CAAC;IACvC,6BAA6B,EAAE,CAAC,aAAa,GAAG;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACvE,qBAAqB,EAAE,CAAC,aAAa,CAAC,CAAC;IACvC,sBAAsB,EAAE,CAAC,aAAa,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,mBAAmB,EAAE,CAAC,aAAa,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAED,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoD;IAC3E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D,OAAO,CAAC,OAAO,CAAC,CAAmC;gBAEvC,IAAI,EAAE,sBAAsB,EAAE,MAAM,GAAE,wBAA6B;IAa/E,0FAA0F;IAC1F,UAAU,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI;IAItD,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAKlB;;;;;OAKG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAuC7D;;;OAGG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAO9C;;;OAGG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAShC,4DAA4D;IAC5D,IAAI,IAAI,IAAI;IAOZ,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;YAI1C,gBAAgB;IAmC9B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,kBAAkB;IAe1B,wDAAwD;IACxD,OAAO,CAAC,cAAc;YAUR,cAAc;IAiD5B,OAAO,CAAC,QAAQ;IAqBhB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;CA6C1B"}
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
import { EventEmitter } from 'node:events';
|
|
35
35
|
import fs from 'node:fs';
|
|
36
36
|
import path from 'node:path';
|
|
37
|
+
import { findNewestRolloutSync } from '../providers/adapters/openai-codex/observability/sessionPaths.js';
|
|
37
38
|
const DEFAULTS = {
|
|
38
39
|
dedupeWindowMs: 60_000, // 1 minute — catch overlapping triggers
|
|
39
40
|
verifyWindowMs: 25_000, // 25s — enough for claude to boot past recovery hook and emit output
|
|
@@ -276,6 +277,15 @@ export class CompactionSentinel extends EventEmitter {
|
|
|
276
277
|
* most recently-modified file in the project's jsonl root.
|
|
277
278
|
*/
|
|
278
279
|
readJsonlBaseline(sessionName) {
|
|
280
|
+
// Codex parity: a codex session's transcript is the newest rollout JSONL under
|
|
281
|
+
// $CODEX_HOME/sessions, NOT the Claude projects tree. Compaction-recovery is verified
|
|
282
|
+
// by post-recovery output, and for codex "the account is producing output again" ==
|
|
283
|
+
// "the newest rollout grew" (the OpenAI account-wide signal). Only taken for codex
|
|
284
|
+
// sessions; everything else falls through to the unchanged Claude path (Claude
|
|
285
|
+
// behavior byte-for-byte preserved). Mirrors the RateLimitSentinel codex fix (#33).
|
|
286
|
+
if (this.deps.getSessionFramework?.(sessionName) === 'codex-cli') {
|
|
287
|
+
return findNewestRolloutSync(this.deps.codexHome);
|
|
288
|
+
}
|
|
279
289
|
try {
|
|
280
290
|
const root = this.deps.jsonlRoot
|
|
281
291
|
|| path.join(process.env.HOME || '/tmp', '.claude', 'projects', this.deps.projectDir.replace(/\//g, '-'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompactionSentinel.js","sourceRoot":"","sources":["../../src/monitoring/CompactionSentinel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"CompactionSentinel.js","sourceRoot":"","sources":["../../src/monitoring/CompactionSentinel.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-05-31T02:
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-05-31T02:50:53.996Z",
|
|
5
|
+
"instarVersion": "1.3.136",
|
|
6
6
|
"entryCount": 193,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
review-convergence: complete
|
|
3
|
+
approved: true
|
|
4
|
+
approved-by: echo (standing 12h deploy mandate, topic 13435; independent 2nd-pass review CONCUR ship-active, no must-fix)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Upgrade Guide — vNEXT
|
|
8
|
+
|
|
9
|
+
<!-- bump: patch -->
|
|
10
|
+
|
|
11
|
+
## What Changed — codex compaction-recovery is now verified correctly (fixes a real codex bug)
|
|
12
|
+
|
|
13
|
+
CompactionSentinel re-injects a recovery prompt to a session that didn't come back cleanly
|
|
14
|
+
after compaction, then confirms recovery by watching the session's transcript grow. It only
|
|
15
|
+
knew where Claude keeps transcripts, so for a codex session it found nothing → concluded
|
|
16
|
+
"still stuck" → re-injected the recovery prompt up to 3 times (stacking confusing restart
|
|
17
|
+
prompts on the user's real message — a known disruptive loop) and then falsely reported a
|
|
18
|
+
recovery failure, every single codex compaction.
|
|
19
|
+
|
|
20
|
+
Now it reads the codex session's actual rollout (the same account-wide "is codex producing
|
|
21
|
+
output again?" signal used for the codex rate-limit fix, no fragile per-session id). Claude
|
|
22
|
+
behavior is byte-for-byte unchanged. This is the second of the two sentinels that were codex-
|
|
23
|
+
blind (the rate-limit one shipped previously).
|
|
24
|
+
|
|
25
|
+
## What to Tell Your User
|
|
26
|
+
|
|
27
|
+
If you run a codex agent that gets compacted on a long task, it will now recover cleanly
|
|
28
|
+
instead of getting hit with a burst of confusing restart prompts and a false "recovery
|
|
29
|
+
failed." Nothing to configure — it is simply correct now.
|
|
30
|
+
|
|
31
|
+
## Summary of New Capabilities
|
|
32
|
+
|
|
33
|
+
- `CompactionSentinel` recovery-verification is codex-aware: for codex sessions it reads the
|
|
34
|
+
newest codex rollout's growth (via `findNewestRolloutSync`) instead of the Claude transcript.
|
|
35
|
+
- New deps `getSessionFramework` + `codexHome`; Claude path untouched.
|
|
36
|
+
|
|
37
|
+
## Evidence
|
|
38
|
+
|
|
39
|
+
- Repro: a codex session that recovers from compaction is wrongly re-injected ×maxInjectAttempts
|
|
40
|
+
then marked `compaction:failed`, because `readJsonlBaseline` returned null for codex.
|
|
41
|
+
- Before/after: before — codex verification always null → false-fail; after — reads the codex
|
|
42
|
+
rollout's growth → `compaction:recovered`.
|
|
43
|
+
- Unit: `tests/unit/CompactionSentinel-codex.test.ts` (rollout grows → recovered; never grows
|
|
44
|
+
→ failed). Claude-unchanged: existing `tests/unit/CompactionSentinel.test.ts` (22 tests pass).
|
|
45
|
+
- `tsc --noEmit` clean; `npm run lint` clean.
|
|
46
|
+
- Independent second-pass review: CONCUR ship-active, NO must-fix (verified Claude byte-
|
|
47
|
+
identical + strictly-better than the current broken-for-codex behavior). Same single-account
|
|
48
|
+
concurrent-codex-session caveat as the rate-limit fix (less harmful here; single-session correct).
|
|
49
|
+
- Spec: `docs/specs/compaction-sentinel-codex-parity.md` (+ `.eli16.md`).
|
|
50
|
+
- Side-effects: `upgrades/side-effects/compaction-sentinel-codex-parity.md`.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Side-Effects Review — CompactionSentinel codex parity
|
|
2
|
+
|
|
3
|
+
**Slug:** `compaction-sentinel-codex-parity`
|
|
4
|
+
**Date:** `2026-05-31`
|
|
5
|
+
**Author:** `echo`
|
|
6
|
+
**Second-pass reviewer:** independent review — **CONCUR (ship active), no must-fix.**
|
|
7
|
+
|
|
8
|
+
## Summary
|
|
9
|
+
CompactionSentinel.readJsonlBaseline gains a codex branch (newest rollout via
|
|
10
|
+
findNewestRolloutSync) so codex compaction-recovery is verified instead of falsely failing.
|
|
11
|
+
The #33 recipe, reapplied. Claude path byte-for-byte unchanged. Ships ACTIVE (the broken
|
|
12
|
+
behavior fires today).
|
|
13
|
+
|
|
14
|
+
## Decision-point inventory
|
|
15
|
+
1. `getSessionFramework === 'codex-cli'` gate in readJsonlBaseline.
|
|
16
|
+
2. findNewestRolloutSync ("which rollout is newest").
|
|
17
|
+
|
|
18
|
+
## 1. Over-block / 2. Under-block
|
|
19
|
+
No blocking surface. CompactionSentinel re-injects a recovery prompt + verifies. The fix
|
|
20
|
+
makes verify CORRECT for codex (was: always-fails → redundant re-inject ×3 → false
|
|
21
|
+
compaction:failed). Worst case the codex branch returns null = today's behavior. Concurrent
|
|
22
|
+
codex sessions: a false-recovery stops re-injection one cycle early (LESS harmful than the
|
|
23
|
+
current redundant re-inject); single-session = correct.
|
|
24
|
+
|
|
25
|
+
## 3. Level-of-abstraction fit
|
|
26
|
+
Identical surface to the #33 RateLimitSentinel fix; reuses the same findNewestRolloutSync
|
|
27
|
+
helper + the framework-aware readJsonlBaseline pattern. No new subsystem.
|
|
28
|
+
|
|
29
|
+
## 4. Signal vs authority compliance
|
|
30
|
+
[docs/signal-vs-authority.md](../../docs/signal-vs-authority.md). Recovery (re-inject +
|
|
31
|
+
verify) is an existing authority surface; this extends the SAME lifecycle to codex, does
|
|
32
|
+
not newly elevate authority. No monitoring→blocker conversion.
|
|
33
|
+
|
|
34
|
+
## 5. Interactions
|
|
35
|
+
- Claude sessions: unchanged (gate is codex-only; 22 existing tests pass).
|
|
36
|
+
- RateLimitSentinel: independent; both now use findNewestRolloutSync (shared, pure helper).
|
|
37
|
+
- Concurrent codex sessions: the account-wide-signal caveat (#33's), less harmful here.
|
|
38
|
+
|
|
39
|
+
## 6. External surfaces
|
|
40
|
+
None new. Reads local codex rollout files. No HTTP route, no external API, no user-facing
|
|
41
|
+
vendor strings (CompactionSentinel emits events + console logs only).
|
|
42
|
+
|
|
43
|
+
## 7. Rollback cost
|
|
44
|
+
Low. The codex branch is additive + gated; a PR revert restores the prior (broken-for-codex
|
|
45
|
+
but claude-correct) behavior. No flag (active), but the change cannot regress Claude.
|
|
46
|
+
|
|
47
|
+
## Conclusion
|
|
48
|
+
Safe to ship ACTIVE. Strictly-better than the current broken-for-codex behavior
|
|
49
|
+
(2nd-pass-verified). Concurrent-session caveat documented (same as #33, less harmful here).
|
|
50
|
+
|
|
51
|
+
## Second-pass review
|
|
52
|
+
Independent reviewer **CONCUR ship-active, NO must-fix.** Verified: Claude path
|
|
53
|
+
byte-identical; recipe correctly applied (import + codexHome arg + early return + null-safe);
|
|
54
|
+
strictly-better than current broken state (worst case = today's null-return); concurrent
|
|
55
|
+
caveat acceptable. Non-blocking: same single-account caveat as #33.
|
|
56
|
+
|
|
57
|
+
## Evidence pointers
|
|
58
|
+
- Unit: `tests/unit/CompactionSentinel-codex.test.ts` (grow→recover, no-grow→fail).
|
|
59
|
+
- Claude-unchanged: existing `tests/unit/CompactionSentinel.test.ts` (22 tests pass).
|
|
60
|
+
- Spec: `docs/specs/compaction-sentinel-codex-parity.md` (+ `.eli16.md`).
|