instar 1.3.121 → 1.3.122
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/core/TopicResumeMap.d.ts.map +1 -1
- package/dist/core/TopicResumeMap.js +18 -2
- package/dist/core/TopicResumeMap.js.map +1 -1
- package/dist/messaging/relayContentDedup.d.ts +51 -0
- package/dist/messaging/relayContentDedup.d.ts.map +1 -0
- package/dist/messaging/relayContentDedup.js +0 -0
- package/dist/messaging/relayContentDedup.js.map +1 -0
- package/dist/monitoring/frameworkActivitySignals.d.ts.map +1 -1
- package/dist/monitoring/frameworkActivitySignals.js +12 -1
- package/dist/monitoring/frameworkActivitySignals.js.map +1 -1
- package/dist/providers/adapters/openai-codex/observability/sessionPaths.d.ts +10 -0
- package/dist/providers/adapters/openai-codex/observability/sessionPaths.d.ts.map +1 -1
- package/dist/providers/adapters/openai-codex/observability/sessionPaths.js +44 -1
- package/dist/providers/adapters/openai-codex/observability/sessionPaths.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +27 -0
- package/dist/server/routes.js.map +1 -1
- package/dist/threadline/ThreadResumeMap.d.ts.map +1 -1
- package/dist/threadline/ThreadResumeMap.js +19 -7
- package/dist/threadline/ThreadResumeMap.js.map +1 -1
- package/package.json +1 -1
- package/scripts/instar-dev-precommit.js +10 -1
- package/src/data/builtin-manifest.json +46 -46
- package/upgrades/1.3.122.md +86 -0
- package/upgrades/side-effects/codex-exec-json-silence-signal.md +64 -0
- package/upgrades/side-effects/codex-resume-jsonl-exists.md +68 -0
- package/upgrades/side-effects/ship-gate-sha-mismatch-error.md +54 -0
- package/upgrades/side-effects/threadline-relay-content-dedup.md +93 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopicResumeMap.d.ts","sourceRoot":"","sources":["../../src/core/TopicResumeMap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"TopicResumeMap.d.ts","sourceRoot":"","sources":["../../src/core/TopicResumeMap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqBH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAMnE;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;;OAKG;IACH,qBAAqB,IAAI,MAAM,GAAG,IAAI;IAqCtC;;;;;;;OAOG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAUhF;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAyB9D;;;OAGG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAkBnC;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAU7B;;;;;;;;;OASG;IACH,qBAAqB,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAmE1G,OAAO,CAAC,IAAI;IAWZ;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxC;;OAEG;IACH,OAAO,CAAC,WAAW;CAmBpB"}
|
|
@@ -13,6 +13,7 @@ import fs from 'node:fs';
|
|
|
13
13
|
import path from 'node:path';
|
|
14
14
|
import os from 'node:os';
|
|
15
15
|
import { spawnSync } from 'node:child_process';
|
|
16
|
+
import { findRolloutFileSync } from '../providers/adapters/openai-codex/observability/sessionPaths.js';
|
|
16
17
|
/** Entries older than 24 hours are pruned */
|
|
17
18
|
const MAX_AGE_MS = 24 * 60 * 60 * 1000;
|
|
18
19
|
export class TopicResumeMap {
|
|
@@ -247,13 +248,28 @@ export class TopicResumeMap {
|
|
|
247
248
|
* Check if a JSONL file exists for the given UUID in this project's directory.
|
|
248
249
|
*/
|
|
249
250
|
jsonlExists(uuid) {
|
|
251
|
+
if (!uuid)
|
|
252
|
+
return false;
|
|
253
|
+
// Claude: flat <project-jsonl-dir>/<uuid>.jsonl.
|
|
250
254
|
const jsonlPath = path.join(this.claudeProjectJsonlDir(), `${uuid}.jsonl`);
|
|
251
255
|
try {
|
|
252
|
-
|
|
256
|
+
if (fs.existsSync(jsonlPath))
|
|
257
|
+
return true;
|
|
253
258
|
}
|
|
254
259
|
catch {
|
|
255
|
-
|
|
260
|
+
// Can't check the Claude layout — fall through to the codex layout.
|
|
261
|
+
}
|
|
262
|
+
// Codex: date-partitioned $CODEX_HOME/sessions/.../rollout-<ts>-<uuid>.jsonl.
|
|
263
|
+
// Without this every codex session looks expired/missing and resume breaks
|
|
264
|
+
// fleet-wide for codex agents (codex-compat root).
|
|
265
|
+
try {
|
|
266
|
+
if (findRolloutFileSync(uuid) !== null)
|
|
267
|
+
return true;
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
// Can't check the codex layout — treat as not found.
|
|
256
271
|
}
|
|
272
|
+
return false;
|
|
257
273
|
}
|
|
258
274
|
}
|
|
259
275
|
//# sourceMappingURL=TopicResumeMap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopicResumeMap.js","sourceRoot":"","sources":["../../src/core/TopicResumeMap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"TopicResumeMap.js","sourceRoot":"","sources":["../../src/core/TopicResumeMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* relayContentDedup — content-hash dedup for the agent-to-agent `relay-agent`
|
|
3
|
+
* ingress path.
|
|
4
|
+
*
|
|
5
|
+
* The id-based dedup in MessageRouter.relay keys on `message.id`. That misses a
|
|
6
|
+
* specific failure mode observed 2026-05-30: a SENDER whose HTTP call blocks on
|
|
7
|
+
* the RECEIVER's session spawn (slow on a loaded box) times out, then RETRIES
|
|
8
|
+
* the same message with a FRESH `message.id`. The retry slips past the id-based
|
|
9
|
+
* dedup → the receiver spawns/resumes and replies twice (the duplicate-reply
|
|
10
|
+
* bug — saw 6 doubled replies in one evening).
|
|
11
|
+
*
|
|
12
|
+
* This layer recognizes the retry by the STABLE triple
|
|
13
|
+
* (senderAgent, threadId, normalized content) within a short window, regardless
|
|
14
|
+
* of the message id. It is a bounded, in-memory, fixed-window dedup:
|
|
15
|
+
* - fresh (sender, thread, content) → process + record
|
|
16
|
+
* - identical within `ttlMs` of first-seen → drop (duplicate retry)
|
|
17
|
+
* - identical `ttlMs`+ after first-seen → process (plausibly a real re-send)
|
|
18
|
+
*
|
|
19
|
+
* Memory is bounded by `maxEntries` (oldest-evicted) plus a lazy sweep of
|
|
20
|
+
* expired keys on each call. The window is intentionally short so it only ever
|
|
21
|
+
* collapses true rapid retries, never two genuinely-distinct sends.
|
|
22
|
+
*/
|
|
23
|
+
export interface RelayContentDedupOpts {
|
|
24
|
+
/** Window from first-seen during which an identical inbound is a duplicate. */
|
|
25
|
+
ttlMs?: number;
|
|
26
|
+
/** Hard cap on retained keys (oldest evicted past this). */
|
|
27
|
+
maxEntries?: number;
|
|
28
|
+
/** Injectable clock for deterministic tests. */
|
|
29
|
+
now?: () => number;
|
|
30
|
+
}
|
|
31
|
+
export declare class RelayContentDedup {
|
|
32
|
+
private readonly ttlMs;
|
|
33
|
+
private readonly maxEntries;
|
|
34
|
+
private readonly now;
|
|
35
|
+
/** key -> firstSeen epoch ms (Map preserves insertion order for eviction). */
|
|
36
|
+
private readonly seen;
|
|
37
|
+
constructor(opts?: RelayContentDedupOpts);
|
|
38
|
+
/** Stable dedup key for an inbound relay message. */
|
|
39
|
+
static keyFor(senderAgent: string, threadId: string, content: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Returns true if this inbound should be processed (fresh, or the prior
|
|
42
|
+
* sighting has aged past the window); false if it is a duplicate retry seen
|
|
43
|
+
* within the window. Fresh keys are recorded. Safe to call on every inbound.
|
|
44
|
+
*/
|
|
45
|
+
shouldProcess(senderAgent: string, threadId: string, content: string): boolean;
|
|
46
|
+
/** Number of retained keys (test/observability aid). */
|
|
47
|
+
size(): number;
|
|
48
|
+
private sweep;
|
|
49
|
+
private enforceCap;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=relayContentDedup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relayContentDedup.d.ts","sourceRoot":"","sources":["../../src/messaging/relayContentDedup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,MAAM,WAAW,qBAAqB;IACpC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,8EAA8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;gBAEtC,IAAI,GAAE,qBAA0B;IAM5C,qDAAqD;IACrD,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAU7E;;;;OAIG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAgB9E,wDAAwD;IACxD,IAAI,IAAI,MAAM;IAId,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,UAAU;CASnB"}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relayContentDedup.js","sourceRoot":"","sources":["../../src/messaging/relayContentDedup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AAWjC,MAAM,OAAO,iBAAiB;IACX,KAAK,CAAS;IACd,UAAU,CAAS;IACnB,GAAG,CAAe;IACnC,8EAA8E;IAC7D,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElD,YAAY,OAA8B,EAAE;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IAClC,CAAC;IAED,qDAAqD;IACrD,MAAM,CAAC,MAAM,CAAC,WAAmB,EAAE,QAAgB,EAAE,OAAe;QAClE,oEAAoE;QACpE,8CAA8C;QAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACvD,OAAO,MAAM;aACV,UAAU,CAAC,QAAQ,CAAC;aACpB,MAAM,CAAC,GAAG,WAAW,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;aAClD,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,WAAmB,EAAE,QAAgB,EAAE,OAAe;QAClE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,4EAA4E;QAC5E,4EAA4E;QAC5E,wEAAwE;QACxE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wDAAwD;IACxD,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,CAAS;QACrB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QACjC,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAClD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,CAAC,IAAI,QAAQ;gBAAE,MAAM;QAC7B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameworkActivitySignals.d.ts","sourceRoot":"","sources":["../../src/monitoring/frameworkActivitySignals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;
|
|
1
|
+
{"version":3,"file":"frameworkActivitySignals.d.ts","sourceRoot":"","sources":["../../src/monitoring/frameworkActivitySignals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAsDD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,qBAAqB,GAAG,SAAS,GAAG,IAAI,GAAG,uBAAuB,CAU9G;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAAC;IAAE,SAAS,EAAE,qBAAqB,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAA;CAAE,CAAC,CAK1H"}
|
|
@@ -43,7 +43,18 @@ const CODEX_CLI_SIGNAL = {
|
|
|
43
43
|
// proxy default to "still working" forever (the 2026-05-23 stuck-session
|
|
44
44
|
// incident). The placeholder prompt "Find and fix a bug in @filename" is
|
|
45
45
|
// likewise an IDLE indicator, not work.
|
|
46
|
-
|
|
46
|
+
//
|
|
47
|
+
// codex EXEC --json mode (jobs, autonomous spawns) emits a JSON EVENT STREAM,
|
|
48
|
+
// not the TUI status line: {"type":"thread.started"}, {"type":"turn.started"},
|
|
49
|
+
// {"type":"item.started"|"item.completed"|"item.updated"}, etc. None of the
|
|
50
|
+
// TUI patterns above match that, so a working `codex exec --json` session read
|
|
51
|
+
// as NOT active → marked paused → skipped by ActiveWorkSilenceSentinel. That
|
|
52
|
+
// hid a genuinely-wedged exec-json job (frozen mid-turn ~8.5h) from the
|
|
53
|
+
// silence watchdog. Match the event-stream namespaces so an exec-json session
|
|
54
|
+
// that streamed events THEN froze is silence-eligible (the OutputActivity-
|
|
55
|
+
// Tracker's observed-change requirement still gates "frozen before we watched").
|
|
56
|
+
// These are structured JSON markers, not idle status text.
|
|
57
|
+
toolCallOrSpinner: /Working\s*\(\d+\s*s|•\s*Ran\b|exec\(|shell\(|apply_patch\(|⠋|⠙|⠹|⠸|⠼|⠴|⠦|⠧|⠇|⠏|\bgenerating\b|"type":\s*"(thread|turn|item)\./i,
|
|
47
58
|
// Codex shows a BARE "esc to interrupt" (no "press"/"hit" prefix) inside
|
|
48
59
|
// its working status line, so the Claude-style prefixed pattern never
|
|
49
60
|
// matched a real Codex pane. Match the bare form.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameworkActivitySignals.js","sourceRoot":"","sources":["../../src/monitoring/frameworkActivitySignals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA+BH,MAAM,kBAAkB,GAA4B;IAClD,WAAW,EAAE,aAAa;IAC1B,kEAAkE;IAClE,wCAAwC;IACxC,iBAAiB,EAAE,uEAAuE;IAC1F,iBAAiB,EAAE,mBAAmB;IACtC,gBAAgB,EAAE,cAAc;IAChC,oBAAoB,EAClB,+JAA+J;CAClK,CAAC;AAEF,MAAM,gBAAgB,GAA4B;IAChD,WAAW,EAAE,WAAW;IACxB,0EAA0E;IAC1E,sEAAsE;IACtE,uEAAuE;IACvE,oDAAoD;IACpD,EAAE;IACF,+DAA+D;IAC/D,gEAAgE;IAChE,uEAAuE;IACvE,yEAAyE;IACzE,0EAA0E;IAC1E,yEAAyE;IACzE,yEAAyE;IACzE,wCAAwC;IACxC,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"frameworkActivitySignals.js","sourceRoot":"","sources":["../../src/monitoring/frameworkActivitySignals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA+BH,MAAM,kBAAkB,GAA4B;IAClD,WAAW,EAAE,aAAa;IAC1B,kEAAkE;IAClE,wCAAwC;IACxC,iBAAiB,EAAE,uEAAuE;IAC1F,iBAAiB,EAAE,mBAAmB;IACtC,gBAAgB,EAAE,cAAc;IAChC,oBAAoB,EAClB,+JAA+J;CAClK,CAAC;AAEF,MAAM,gBAAgB,GAA4B;IAChD,WAAW,EAAE,WAAW;IACxB,0EAA0E;IAC1E,sEAAsE;IACtE,uEAAuE;IACvE,oDAAoD;IACpD,EAAE;IACF,+DAA+D;IAC/D,gEAAgE;IAChE,uEAAuE;IACvE,yEAAyE;IACzE,0EAA0E;IAC1E,yEAAyE;IACzE,yEAAyE;IACzE,wCAAwC;IACxC,EAAE;IACF,8EAA8E;IAC9E,+EAA+E;IAC/E,4EAA4E;IAC5E,+EAA+E;IAC/E,6EAA6E;IAC7E,wEAAwE;IACxE,8EAA8E;IAC9E,2EAA2E;IAC3E,iFAAiF;IACjF,2DAA2D;IAC3D,iBAAiB,EAAE,gIAAgI;IACnJ,yEAAyE;IACzE,sEAAsE;IACtE,kDAAkD;IAClD,iBAAiB,EAAE,mBAAmB;IACtC,gBAAgB,EAAE,gEAAgE;IAClF,oBAAoB,EAClB,kRAAkR;CACrR,CAAC;AAEF,MAAM,gBAAgB,GAA2D;IAC/E,aAAa,EAAE,kBAAkB;IACjC,WAAW,EAAE,gBAAgB;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAmD;IACnF,IAAI,CAAC,SAAS;QAAE,OAAO,kBAAkB,CAAC;IAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,kEAAkE;IAClE,gEAAgE;IAChE,kEAAkE;IAClE,kEAAkE;IAClE,6CAA6C;IAC7C,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAQ,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAA6B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAClF,SAAS;QACT,MAAM,EAAE,gBAAgB,CAAC,SAAS,CAAC;KACpC,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -15,6 +15,16 @@
|
|
|
15
15
|
export declare function codexHomeFromConfig(codexHome?: string): string;
|
|
16
16
|
/** Find a rollout JSONL file by Codex thread UUID. Returns null on miss. */
|
|
17
17
|
export declare function findRolloutFile(threadId: string, codexHome?: string): Promise<string | null>;
|
|
18
|
+
/**
|
|
19
|
+
* Synchronous variant of {@link findRolloutFile}. Needed by callers that run on
|
|
20
|
+
* a sync code path and cannot await — notably the resume-map `jsonlExists`
|
|
21
|
+
* guards (ThreadResumeMap, TopicResumeMap), which previously checked only the
|
|
22
|
+
* Claude flat layout and so returned false for EVERY codex session (the
|
|
23
|
+
* codex-compat resume bug: every codex thread looked expired/missing). Returns
|
|
24
|
+
* the rollout path or null. A missing `$CODEX_HOME/sessions` (e.g. a pure
|
|
25
|
+
* Claude agent) returns null fast — `readdirSync` throws and is caught.
|
|
26
|
+
*/
|
|
27
|
+
export declare function findRolloutFileSync(threadId: string, codexHome?: string): string | null;
|
|
18
28
|
/** List all rollout files under $CODEX_HOME/sessions, newest first. */
|
|
19
29
|
export declare function listAllRollouts(codexHome?: string, limit?: number): Promise<ReadonlyArray<{
|
|
20
30
|
path: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionPaths.d.ts","sourceRoot":"","sources":["../../../../../src/providers/adapters/openai-codex/observability/sessionPaths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,4EAA4E;AAC5E,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAIxB;
|
|
1
|
+
{"version":3,"file":"sessionPaths.d.ts","sourceRoot":"","sources":["../../../../../src/providers/adapters/openai-codex/observability/sessionPaths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,4EAA4E;AAC5E,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAIxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIvF;AAoDD,uEAAuE;AACvE,wBAAsB,eAAe,CACnC,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,SAAM,GACV,OAAO,CAAC,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAMzD"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* Fallback: none — if the layout changes, callers get empty results
|
|
13
13
|
* Verdict: deterministic FS walk + canary (canary at canary/codexSessionLayoutCanary.ts)
|
|
14
14
|
*/
|
|
15
|
-
import { promises as fs } from 'node:fs';
|
|
15
|
+
import { promises as fs, readdirSync, statSync } from 'node:fs';
|
|
16
16
|
import { homedir } from 'node:os';
|
|
17
17
|
import path from 'node:path';
|
|
18
18
|
export function codexHomeFromConfig(codexHome) {
|
|
@@ -25,6 +25,49 @@ export async function findRolloutFile(threadId, codexHome) {
|
|
|
25
25
|
const root = path.join(codexHomeFromConfig(codexHome), 'sessions');
|
|
26
26
|
return walkForUuid(root, threadId);
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Synchronous variant of {@link findRolloutFile}. Needed by callers that run on
|
|
30
|
+
* a sync code path and cannot await — notably the resume-map `jsonlExists`
|
|
31
|
+
* guards (ThreadResumeMap, TopicResumeMap), which previously checked only the
|
|
32
|
+
* Claude flat layout and so returned false for EVERY codex session (the
|
|
33
|
+
* codex-compat resume bug: every codex thread looked expired/missing). Returns
|
|
34
|
+
* the rollout path or null. A missing `$CODEX_HOME/sessions` (e.g. a pure
|
|
35
|
+
* Claude agent) returns null fast — `readdirSync` throws and is caught.
|
|
36
|
+
*/
|
|
37
|
+
export function findRolloutFileSync(threadId, codexHome) {
|
|
38
|
+
if (!threadId)
|
|
39
|
+
return null;
|
|
40
|
+
const root = path.join(codexHomeFromConfig(codexHome), 'sessions');
|
|
41
|
+
return walkForUuidSync(root, threadId);
|
|
42
|
+
}
|
|
43
|
+
function walkForUuidSync(root, uuid) {
|
|
44
|
+
let entries;
|
|
45
|
+
try {
|
|
46
|
+
entries = readdirSync(root);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
for (const entry of entries) {
|
|
52
|
+
const full = path.join(root, entry);
|
|
53
|
+
let stat;
|
|
54
|
+
try {
|
|
55
|
+
stat = statSync(full);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (stat.isDirectory()) {
|
|
61
|
+
const nested = walkForUuidSync(full, uuid);
|
|
62
|
+
if (nested)
|
|
63
|
+
return nested;
|
|
64
|
+
}
|
|
65
|
+
else if (stat.isFile() && entry.startsWith('rollout-') && entry.includes(uuid) && entry.endsWith('.jsonl')) {
|
|
66
|
+
return full;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
28
71
|
async function walkForUuid(root, uuid) {
|
|
29
72
|
let entries;
|
|
30
73
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionPaths.js","sourceRoot":"","sources":["../../../../../src/providers/adapters/openai-codex/observability/sessionPaths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"sessionPaths.js","sourceRoot":"","sources":["../../../../../src/providers/adapters/openai-codex/observability/sessionPaths.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,IAAI,cAAc,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,SAAS,CAAC;AAMtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,kBAAkB,CAAC;AAuBlE,OAAO,EACL,mBAAmB,EAMpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAA4B,MAAM,uBAAuB,CAAC;AA+E7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAE9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAS1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAExF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/server/routes.js
CHANGED
|
@@ -87,6 +87,7 @@ import { verifyMergedItemsViaGit } from '../core/ProjectRoundExecution.js';
|
|
|
87
87
|
import { listAutonomousJobs, canStartAutonomousJob, stopAutonomousTopic, stopAllAutonomousJobs, DEFAULT_MAX_CONCURRENT_AUTONOMOUS, } from '../core/AutonomousSessions.js';
|
|
88
88
|
import { ProcessIntegrity } from '../core/ProcessIntegrity.js';
|
|
89
89
|
import { decideIngress, commitInboundReply, dedupeKeyFor } from '../messaging/ingressDedup.js';
|
|
90
|
+
import { RelayContentDedup } from '../messaging/relayContentDedup.js';
|
|
90
91
|
import { getOutboundQueueStatus, cleanupDeliveredOutbound, buildAgentList } from '../messaging/GitSyncTransport.js';
|
|
91
92
|
import { verifyAgentToken, getAgentToken } from '../messaging/AgentTokenManager.js';
|
|
92
93
|
import { evaluateAndRecordInbound } from '../threadline/WarrantsReplyGate.js';
|
|
@@ -552,6 +553,11 @@ export const PATCHABLE_CONFIG_KEYS = new Set([
|
|
|
552
553
|
]);
|
|
553
554
|
export function createRoutes(ctx) {
|
|
554
555
|
const router = Router();
|
|
556
|
+
// Content-hash dedup for the agent-to-agent relay-agent ingress path. Guards
|
|
557
|
+
// the duplicate-reply bug where a sender that times out on the receiver's
|
|
558
|
+
// session spawn retries with a FRESH message.id, slipping past the id-based
|
|
559
|
+
// relay dedup. One instance per server (process-wide across relay-agent calls).
|
|
560
|
+
const relayContentDedup = new RelayContentDedup();
|
|
555
561
|
// ── PR-REVIEW-HARDENING kill-switch (Phase A) ─────────────────────
|
|
556
562
|
//
|
|
557
563
|
// Spec §"Runtime kill-switch": `prGate.phase = 'off'` returns 404 for
|
|
@@ -11552,6 +11558,27 @@ export function createRoutes(ctx) {
|
|
|
11552
11558
|
res.status(400).json({ error: 'Invalid envelope' });
|
|
11553
11559
|
return;
|
|
11554
11560
|
}
|
|
11561
|
+
// Content-hash dedup (duplicate-reply fix): a sender that timed out on the
|
|
11562
|
+
// receiver's session spawn and retried with a FRESH message.id would
|
|
11563
|
+
// otherwise slip past the id-based relay dedup and cause a duplicate
|
|
11564
|
+
// spawn/reply. Recognize the retry by the stable (sender, thread, content)
|
|
11565
|
+
// triple within a short window and short-circuit idempotently (200, no
|
|
11566
|
+
// spawn) so the sender's retry still sees success.
|
|
11567
|
+
{
|
|
11568
|
+
const dSender = envelope.message?.from?.agent ?? 'unknown';
|
|
11569
|
+
const dThread = envelope.message?.threadId;
|
|
11570
|
+
const dBody = envelope.message?.body;
|
|
11571
|
+
const dText = typeof dBody === 'string'
|
|
11572
|
+
? dBody
|
|
11573
|
+
: (typeof dBody === 'object' && dBody !== null
|
|
11574
|
+
? String(dBody.content ?? dBody.text ?? '')
|
|
11575
|
+
: '');
|
|
11576
|
+
if (dThread && dText && !relayContentDedup.shouldProcess(dSender, dThread, dText)) {
|
|
11577
|
+
console.log(`[relay-agent] Deduped retried message from ${dSender} (thread: ${dThread.slice(0, 8)}, id: ${envelope.message?.id ?? 'none'}) — identical content within window`);
|
|
11578
|
+
res.json({ ok: true, deduped: true });
|
|
11579
|
+
return;
|
|
11580
|
+
}
|
|
11581
|
+
}
|
|
11555
11582
|
const accepted = await ctx.messageRouter.relay(envelope, 'agent');
|
|
11556
11583
|
if (accepted) {
|
|
11557
11584
|
const senderAgent = envelope.message?.from?.agent;
|