instar 1.0.11 → 1.0.13
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/FrameworkSessionStore.d.ts +43 -0
- package/dist/core/FrameworkSessionStore.d.ts.map +1 -0
- package/dist/core/FrameworkSessionStore.js +90 -0
- package/dist/core/FrameworkSessionStore.js.map +1 -0
- package/dist/core/PreCompactionFlush.d.ts +9 -0
- package/dist/core/PreCompactionFlush.d.ts.map +1 -1
- package/dist/core/PreCompactionFlush.js +10 -4
- package/dist/core/PreCompactionFlush.js.map +1 -1
- package/dist/core/ResumeValidator.d.ts +6 -0
- package/dist/core/ResumeValidator.d.ts.map +1 -1
- package/dist/core/ResumeValidator.js +10 -5
- package/dist/core/ResumeValidator.js.map +1 -1
- package/dist/threadline/ThreadlineBootstrap.js +37 -7
- package/dist/threadline/ThreadlineBootstrap.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.0.12.md +64 -0
- package/upgrades/1.0.13.md +57 -0
- package/upgrades/side-effects/feat-portability-codex-mcp.md +62 -0
- package/upgrades/side-effects/feat-portability-session-store.md +62 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FrameworkSessionStore — resolve a session's transcript file path for the
|
|
3
|
+
* runtime that produced it.
|
|
4
|
+
*
|
|
5
|
+
* Portability audit Gap 3. PreCompactionFlush and ResumeValidator hardcoded
|
|
6
|
+
* Claude Code's transcript convention (`~/.claude/projects/<encoded-cwd>/
|
|
7
|
+
* <sessionId>.jsonl`). A Codex session is never found there, so compaction
|
|
8
|
+
* flush and resume validation silently no-op for Codex agents.
|
|
9
|
+
*
|
|
10
|
+
* Codex's layout was determined empirically from a live ~/.codex/ (Codex CLI
|
|
11
|
+
* 0.78.0), NOT guessed:
|
|
12
|
+
* ~/.codex/sessions/YYYY/MM/DD/rollout-<ISO8601-dashes>-<uuid>.jsonl
|
|
13
|
+
* where the trailing <uuid> equals the session id (and the first JSONL line
|
|
14
|
+
* is a `session_meta` record whose payload.id is that same uuid). Sessions
|
|
15
|
+
* are date-partitioned, NOT cwd-keyed, so a Codex lookup globs by id across
|
|
16
|
+
* the date tree rather than building a deterministic path.
|
|
17
|
+
*
|
|
18
|
+
* Pure path resolution + filesystem lookup. No mutation, no network.
|
|
19
|
+
*/
|
|
20
|
+
export type SessionFramework = 'claude-code' | 'codex-cli';
|
|
21
|
+
export interface ResolveTranscriptOptions {
|
|
22
|
+
framework: SessionFramework;
|
|
23
|
+
sessionId: string;
|
|
24
|
+
/** Project working directory (used by the Claude Code cwd-encoded path). */
|
|
25
|
+
projectDir: string;
|
|
26
|
+
/** Home dir override (testing). Defaults to os.homedir(). */
|
|
27
|
+
homeDir?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Root override (testing). For claude-code this replaces
|
|
30
|
+
* `<home>/.claude/projects`; for codex-cli it replaces
|
|
31
|
+
* `<home>/.codex/sessions`.
|
|
32
|
+
*/
|
|
33
|
+
rootOverride?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Resolve the transcript path for a session under the given framework.
|
|
37
|
+
* Returns '' when it cannot be resolved (no session id, or — for Codex —
|
|
38
|
+
* no matching file on disk yet). Callers already treat '' / missing-file
|
|
39
|
+
* as "nothing to flush/validate", so the failure mode is a safe no-op,
|
|
40
|
+
* identical to the pre-Gap-3 Claude behavior.
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveFrameworkTranscriptPath(opts: ResolveTranscriptOptions): string;
|
|
43
|
+
//# sourceMappingURL=FrameworkSessionStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameworkSessionStore.d.ts","sourceRoot":"","sources":["../../src/core/FrameworkSessionStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAoDD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM,CASrF"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FrameworkSessionStore — resolve a session's transcript file path for the
|
|
3
|
+
* runtime that produced it.
|
|
4
|
+
*
|
|
5
|
+
* Portability audit Gap 3. PreCompactionFlush and ResumeValidator hardcoded
|
|
6
|
+
* Claude Code's transcript convention (`~/.claude/projects/<encoded-cwd>/
|
|
7
|
+
* <sessionId>.jsonl`). A Codex session is never found there, so compaction
|
|
8
|
+
* flush and resume validation silently no-op for Codex agents.
|
|
9
|
+
*
|
|
10
|
+
* Codex's layout was determined empirically from a live ~/.codex/ (Codex CLI
|
|
11
|
+
* 0.78.0), NOT guessed:
|
|
12
|
+
* ~/.codex/sessions/YYYY/MM/DD/rollout-<ISO8601-dashes>-<uuid>.jsonl
|
|
13
|
+
* where the trailing <uuid> equals the session id (and the first JSONL line
|
|
14
|
+
* is a `session_meta` record whose payload.id is that same uuid). Sessions
|
|
15
|
+
* are date-partitioned, NOT cwd-keyed, so a Codex lookup globs by id across
|
|
16
|
+
* the date tree rather than building a deterministic path.
|
|
17
|
+
*
|
|
18
|
+
* Pure path resolution + filesystem lookup. No mutation, no network.
|
|
19
|
+
*/
|
|
20
|
+
import * as fs from 'node:fs';
|
|
21
|
+
import * as os from 'node:os';
|
|
22
|
+
import * as path from 'node:path';
|
|
23
|
+
/**
|
|
24
|
+
* Claude Code: deterministic path
|
|
25
|
+
* `<home>/.claude/projects/<cwd with [/.] → ->/<sessionId>.jsonl`.
|
|
26
|
+
* This mirrors the exact pre-Gap-3 logic in PreCompactionFlush so the
|
|
27
|
+
* Claude path is byte-for-byte unchanged.
|
|
28
|
+
*/
|
|
29
|
+
function claudeTranscriptPath(opts) {
|
|
30
|
+
const home = opts.homeDir ?? os.homedir();
|
|
31
|
+
const root = opts.rootOverride ?? path.join(home, '.claude', 'projects');
|
|
32
|
+
const encoded = opts.projectDir.replace(/[\/.]/g, '-');
|
|
33
|
+
return path.join(root, encoded, `${opts.sessionId}.jsonl`);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Codex CLI: glob `<home>/.codex/sessions/YYYY/MM/DD/rollout-*-<id>.jsonl`.
|
|
37
|
+
* Empirically the filename ends with `-<sessionId>.jsonl`. Returns the
|
|
38
|
+
* first match (a session id is unique), or '' when not found.
|
|
39
|
+
*/
|
|
40
|
+
function codexTranscriptPath(opts) {
|
|
41
|
+
const home = opts.homeDir ?? os.homedir();
|
|
42
|
+
const root = opts.rootOverride ?? path.join(home, '.codex', 'sessions');
|
|
43
|
+
if (!fs.existsSync(root))
|
|
44
|
+
return '';
|
|
45
|
+
const suffix = `-${opts.sessionId}.jsonl`;
|
|
46
|
+
// sessions/YYYY/MM/DD/<file>. Walk at most 3 levels deep.
|
|
47
|
+
const years = safeReaddir(root);
|
|
48
|
+
for (const y of years) {
|
|
49
|
+
const yDir = path.join(root, y);
|
|
50
|
+
for (const m of safeReaddir(yDir)) {
|
|
51
|
+
const mDir = path.join(yDir, m);
|
|
52
|
+
for (const d of safeReaddir(mDir)) {
|
|
53
|
+
const dDir = path.join(mDir, d);
|
|
54
|
+
for (const f of safeReaddir(dDir)) {
|
|
55
|
+
if (f.startsWith('rollout-') && f.endsWith(suffix)) {
|
|
56
|
+
return path.join(dDir, f);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return '';
|
|
63
|
+
}
|
|
64
|
+
function safeReaddir(dir) {
|
|
65
|
+
try {
|
|
66
|
+
return fs.readdirSync(dir);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Resolve the transcript path for a session under the given framework.
|
|
74
|
+
* Returns '' when it cannot be resolved (no session id, or — for Codex —
|
|
75
|
+
* no matching file on disk yet). Callers already treat '' / missing-file
|
|
76
|
+
* as "nothing to flush/validate", so the failure mode is a safe no-op,
|
|
77
|
+
* identical to the pre-Gap-3 Claude behavior.
|
|
78
|
+
*/
|
|
79
|
+
export function resolveFrameworkTranscriptPath(opts) {
|
|
80
|
+
if (!opts.sessionId)
|
|
81
|
+
return '';
|
|
82
|
+
switch (opts.framework) {
|
|
83
|
+
case 'codex-cli':
|
|
84
|
+
return codexTranscriptPath(opts);
|
|
85
|
+
case 'claude-code':
|
|
86
|
+
default:
|
|
87
|
+
return claudeTranscriptPath(opts);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=FrameworkSessionStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameworkSessionStore.js","sourceRoot":"","sources":["../../src/core/FrameworkSessionStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAmBlC;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,IAA8B;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,IAA8B;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,QAAQ,CAAC;IAC1C,0DAA0D;IAC1D,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAChC,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBACnD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAA8B;IAC3E,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC/B,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,aAAa,CAAC;QACnB;YACE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;AACH,CAAC"}
|
|
@@ -54,6 +54,15 @@ export interface PreCompactionFlushDeps {
|
|
|
54
54
|
agentLabel?: string;
|
|
55
55
|
/** Optional override for transcript root (testing). Defaults to ~/.claude/projects. */
|
|
56
56
|
claudeProjectsRoot?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Runtime that produced this session. Drives transcript-path resolution
|
|
59
|
+
* via FrameworkSessionStore (portability audit Gap 3). Defaults to
|
|
60
|
+
* 'claude-code' — the historical behavior, so Claude installs are
|
|
61
|
+
* byte-for-byte unchanged.
|
|
62
|
+
*/
|
|
63
|
+
framework?: 'claude-code' | 'codex-cli';
|
|
64
|
+
/** Optional override for the Codex sessions root (testing). */
|
|
65
|
+
codexSessionsRoot?: string;
|
|
57
66
|
/** Now provider — overridable for tests. */
|
|
58
67
|
now?: () => Date;
|
|
59
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreCompactionFlush.d.ts","sourceRoot":"","sources":["../../src/core/PreCompactionFlush.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAMH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"PreCompactionFlush.d.ts","sourceRoot":"","sources":["../../src/core/PreCompactionFlush.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAMH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,WAAW,wBAAwB;IACvC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,mCAAmC,EAAE,wBAIjD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,aAAa,GAAG,WAAW,CAAC;IACxC,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,YAAY,GACpB,IAAI,GACJ,UAAU,GACV,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,UAAU,GACV,eAAe,GACf,gBAAgB,GAChB,aAAa,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;gBAEtC,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,wBAAwB;IAK1E;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IA2DlE,wEAAwE;IACxE,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IA2B3C,oGAAoG;IACpG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IA2B1C,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,SAAS;IA0BjB,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,UAAU;CAUnB"}
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
*/
|
|
39
39
|
import fs from 'node:fs';
|
|
40
40
|
import path from 'node:path';
|
|
41
|
-
import os from 'node:os';
|
|
42
41
|
import crypto from 'node:crypto';
|
|
42
|
+
import { resolveFrameworkTranscriptPath } from './FrameworkSessionStore.js';
|
|
43
43
|
export const DEFAULT_PRE_COMPACTION_FLUSH_CONFIG = {
|
|
44
44
|
enabled: false,
|
|
45
45
|
maxFactsPerFlush: 5,
|
|
@@ -193,9 +193,15 @@ export class PreCompactionFlush {
|
|
|
193
193
|
return payload.transcript_path;
|
|
194
194
|
if (!payload.session_id)
|
|
195
195
|
return '';
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
196
|
+
const framework = this.deps.framework ?? 'claude-code';
|
|
197
|
+
return resolveFrameworkTranscriptPath({
|
|
198
|
+
framework,
|
|
199
|
+
sessionId: payload.session_id,
|
|
200
|
+
projectDir: this.deps.projectDir,
|
|
201
|
+
rootOverride: framework === 'codex-cli'
|
|
202
|
+
? this.deps.codexSessionsRoot
|
|
203
|
+
: this.deps.claudeProjectsRoot,
|
|
204
|
+
});
|
|
199
205
|
}
|
|
200
206
|
readTranscriptTail(transcriptPath) {
|
|
201
207
|
if (!transcriptPath || !fs.existsSync(transcriptPath))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreCompactionFlush.js","sourceRoot":"","sources":["../../src/core/PreCompactionFlush.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"PreCompactionFlush.js","sourceRoot":"","sources":["../../src/core/PreCompactionFlush.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,12 @@ export interface ResumeValidatorDeps {
|
|
|
42
42
|
evaluateFn?: (prompt: string) => Promise<string>;
|
|
43
43
|
/** Override session JSONL reader for testing */
|
|
44
44
|
readSessionJsonl?: (uuid: string) => string;
|
|
45
|
+
/**
|
|
46
|
+
* Runtime that produced the session being validated. Drives transcript
|
|
47
|
+
* path resolution via FrameworkSessionStore (portability audit Gap 3).
|
|
48
|
+
* Defaults to 'claude-code' — historical behavior, Claude unchanged.
|
|
49
|
+
*/
|
|
50
|
+
framework?: 'claude-code' | 'codex-cli';
|
|
45
51
|
}
|
|
46
52
|
/**
|
|
47
53
|
* Validate that a resume UUID's session content is coherent with a topic's history.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResumeValidator.d.ts","sourceRoot":"","sources":["../../src/core/ResumeValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"ResumeValidator.d.ts","sourceRoot":"","sources":["../../src/core/ResumeValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACvH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1D;AAED,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAC1G,0CAA0C;IAC1C,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C;;;;OAIG;IACH,SAAS,CAAC,EAAE,aAAa,GAAG,WAAW,CAAC;CACzC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,oBAAoB,GAAG,IAAI,EACtC,YAAY,CAAC,EAAE,oBAAoB,GAAG,IAAI,EAC1C,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAmKlB"}
|
|
@@ -18,8 +18,7 @@
|
|
|
18
18
|
* which runs on the user's existing Claude subscription.
|
|
19
19
|
*/
|
|
20
20
|
import fs from 'node:fs';
|
|
21
|
-
import
|
|
22
|
-
import os from 'node:os';
|
|
21
|
+
import { resolveFrameworkTranscriptPath } from './FrameworkSessionStore.js';
|
|
23
22
|
/**
|
|
24
23
|
* Validate that a resume UUID's session content is coherent with a topic's history.
|
|
25
24
|
*
|
|
@@ -84,9 +83,15 @@ export async function llmValidateResumeCoherence(resumeUuid, topicId, topicName,
|
|
|
84
83
|
sessionContext = deps.readSessionJsonl(resumeUuid);
|
|
85
84
|
}
|
|
86
85
|
else {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
// Gap 3: resolve per-framework. Default claude-code reproduces the
|
|
87
|
+
// exact prior path (.claude/projects/<hash>/<uuid>.jsonl); codex-cli
|
|
88
|
+
// globs ~/.codex/sessions/YYYY/MM/DD/rollout-*-<uuid>.jsonl.
|
|
89
|
+
const jsonlPath = resolveFrameworkTranscriptPath({
|
|
90
|
+
framework: deps.framework ?? 'claude-code',
|
|
91
|
+
sessionId: resumeUuid,
|
|
92
|
+
projectDir,
|
|
93
|
+
});
|
|
94
|
+
if (jsonlPath && fs.existsSync(jsonlPath)) {
|
|
90
95
|
try {
|
|
91
96
|
const stat = fs.statSync(jsonlPath);
|
|
92
97
|
const fd = fs.openSync(jsonlPath, 'r');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResumeValidator.js","sourceRoot":"","sources":["../../src/core/ResumeValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ResumeValidator.js","sourceRoot":"","sources":["../../src/core/ResumeValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,8 +59,8 @@ export async function bootstrapThreadline(config) {
|
|
|
59
59
|
});
|
|
60
60
|
// Start heartbeat for liveness detection
|
|
61
61
|
const stopHeartbeat = discovery.startPresenceHeartbeat();
|
|
62
|
-
// ── 4. Register MCP server into
|
|
63
|
-
registerThreadlineMcp(config.projectDir, config.agentName, config.stateDir);
|
|
62
|
+
// ── 4. Register MCP server into framework config(s) ──────────────
|
|
63
|
+
await registerThreadlineMcp(config.projectDir, config.agentName, config.stateDir);
|
|
64
64
|
// ── 5. Cloud Relay Connection (opt-in) ─────────────────────────
|
|
65
65
|
const relayEnabled = config.relayEnabled === true
|
|
66
66
|
|| process.env.THREADLINE_RELAY_ENABLED === 'true';
|
|
@@ -299,14 +299,23 @@ function loadOrCreateIdentityKeys(threadlineDir) {
|
|
|
299
299
|
}
|
|
300
300
|
// ── MCP Registration ─────────────────────────────────────────────────
|
|
301
301
|
/**
|
|
302
|
-
* Register the Threadline MCP server into
|
|
302
|
+
* Register the Threadline MCP server into every framework config present.
|
|
303
303
|
*
|
|
304
|
-
*
|
|
305
|
-
*
|
|
304
|
+
* Claude Code: ~/.claude.json (local scope) + .mcp.json (project scope).
|
|
305
|
+
* Codex CLI: `[mcp_servers."threadline"]` in ~/.codex/config.toml — added
|
|
306
|
+
* for the cross-framework portability audit (Gap 2). Before this, a
|
|
307
|
+
* Codex agent that joined the Threadline network had the relay running
|
|
308
|
+
* but no MCP tools advertised to its runtime. The Codex TOML format and
|
|
309
|
+
* path were empirically verified from a live ~/.codex/ (Codex CLI
|
|
310
|
+
* 0.78.0); registration reuses the existing, tested
|
|
311
|
+
* OpenAiCodexMcpToolRegistry so the two writers cannot drift.
|
|
306
312
|
*
|
|
307
|
-
* The MCP server is a stdio process
|
|
313
|
+
* The MCP server is a stdio process the framework launches as a subprocess.
|
|
314
|
+
* Codex registration is gated on ~/.codex/ existing (Codex installed on
|
|
315
|
+
* this machine) so a Claude-only host is never given a Codex config it
|
|
316
|
+
* does not use.
|
|
308
317
|
*/
|
|
309
|
-
function registerThreadlineMcp(projectDir, agentName, stateDir) {
|
|
318
|
+
async function registerThreadlineMcp(projectDir, agentName, stateDir) {
|
|
310
319
|
const absDir = path.resolve(projectDir);
|
|
311
320
|
// The MCP server entry point — runs as a child process of Claude Code.
|
|
312
321
|
// Resolve the actual instar package location (handles both node_modules and npm-linked).
|
|
@@ -374,5 +383,26 @@ function registerThreadlineMcp(projectDir, agentName, stateDir) {
|
|
|
374
383
|
catch {
|
|
375
384
|
// Non-fatal
|
|
376
385
|
}
|
|
386
|
+
// ── 3. Also register in Codex's ~/.codex/config.toml (portability Gap 2) ──
|
|
387
|
+
// Gated on ~/.codex/ existing so a Claude-only host never gets a Codex
|
|
388
|
+
// config it does not use. Reuses the existing OpenAiCodexMcpToolRegistry
|
|
389
|
+
// (idempotent remove-then-append of the [mcp_servers."threadline"] table)
|
|
390
|
+
// so the TOML writer is never duplicated. Non-fatal, matching the Claude
|
|
391
|
+
// registration blocks above.
|
|
392
|
+
try {
|
|
393
|
+
const codexHome = process.env['CODEX_HOME'] || path.join(os.homedir(), '.codex');
|
|
394
|
+
if (fs.existsSync(codexHome)) {
|
|
395
|
+
const { createMcpToolRegistry } = await import('../providers/adapters/openai-codex/integration/mcpToolRegistry.js');
|
|
396
|
+
await createMcpToolRegistry().register({
|
|
397
|
+
kind: 'stdio',
|
|
398
|
+
name: 'threadline',
|
|
399
|
+
command: mcpEntry.command,
|
|
400
|
+
args: mcpEntry.args,
|
|
401
|
+
}, { scope: 'user' });
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
catch {
|
|
405
|
+
// Non-fatal — Claude registration above is unaffected.
|
|
406
|
+
}
|
|
377
407
|
}
|
|
378
408
|
//# sourceMappingURL=ThreadlineBootstrap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadlineBootstrap.js","sourceRoot":"","sources":["../../src/threadline/ThreadlineBootstrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ThreadlineBootstrap.js","sourceRoot":"","sources":["../../src/threadline/ThreadlineBootstrap.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-
|
|
5
|
-
"instarVersion": "1.0.
|
|
4
|
+
"generatedAt": "2026-05-19T21:07:55.340Z",
|
|
5
|
+
"instarVersion": "1.0.13",
|
|
6
6
|
"entryCount": 189,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Upgrade Guide — v1.0.12 (portability hardening 4 of 6)
|
|
2
|
+
|
|
3
|
+
<!-- bump: patch -->
|
|
4
|
+
|
|
5
|
+
## What Changed
|
|
6
|
+
|
|
7
|
+
Fourth shipped of the six cross-framework portability hardening patches
|
|
8
|
+
(v1.0.9–v1.0.14).
|
|
9
|
+
|
|
10
|
+
Two safety features — pre-compaction context flush and resume validation —
|
|
11
|
+
could only locate Claude Code session transcripts, so they silently did
|
|
12
|
+
nothing for a Codex agent. A new shared resolver locates the transcript for
|
|
13
|
+
whichever runtime produced the session. The Codex transcript layout was
|
|
14
|
+
verified by inspecting a live Codex install on disk, not assumed.
|
|
15
|
+
|
|
16
|
+
It also fixes a pre-existing latent bug: the resume validator built the
|
|
17
|
+
Claude transcript path replacing only slashes in the project directory, while
|
|
18
|
+
the real Claude layout also replaces dots. For any project whose path
|
|
19
|
+
contains a dot, resume validation was looking in a directory that does not
|
|
20
|
+
exist and silently failing. Routing it through the shared, empirically-correct
|
|
21
|
+
resolver fixes that.
|
|
22
|
+
|
|
23
|
+
## Evidence
|
|
24
|
+
|
|
25
|
+
Reproduction prior to this change: run a Codex agent through a context
|
|
26
|
+
compaction. The pre-compaction flush looked for the transcript under Claude
|
|
27
|
+
Code's directory convention, found nothing, and produced no learning capture.
|
|
28
|
+
Separately, validate a resume for any agent whose project path contains a dot
|
|
29
|
+
(for example a path with `.instar`): the resume validator's slash-only path
|
|
30
|
+
encoding produced a non-existent directory and the JSONL sample came back
|
|
31
|
+
empty.
|
|
32
|
+
|
|
33
|
+
Observed after this change: the shared resolver returns
|
|
34
|
+
`~/.codex/sessions/YYYY/MM/DD/rollout-...-<id>.jsonl` for Codex (verified
|
|
35
|
+
against a live `~/.codex/`, Codex CLI 0.78.0) and the correctly-encoded
|
|
36
|
+
Claude path (dots and slashes both replaced, matching the real
|
|
37
|
+
`~/.claude/projects/` directory naming) for Claude Code. Claude installs whose
|
|
38
|
+
project path has no dot are byte-for-byte unchanged.
|
|
39
|
+
|
|
40
|
+
Unit verification: `tests/unit/FrameworkSessionStore.test.ts` — seven cases
|
|
41
|
+
including the dot-and-slash Claude encoding, the Codex date-tree glob with a
|
|
42
|
+
decoy file that must not match, and safe-empty returns when nothing is found.
|
|
43
|
+
Thirty-five existing pre-compaction-flush and resume-validator tests pass
|
|
44
|
+
unchanged.
|
|
45
|
+
|
|
46
|
+
## What to Tell Your User
|
|
47
|
+
|
|
48
|
+
- "Context-saving before compaction and resume validation now work for Codex agents, not just Claude Code. We also fixed a quiet bug where resume validation failed for any project whose folder path contained a dot. Claude Code agents without a dot in their path are unaffected."
|
|
49
|
+
|
|
50
|
+
## Summary of New Capabilities
|
|
51
|
+
|
|
52
|
+
| Capability | How to Use |
|
|
53
|
+
|-----------|-----------|
|
|
54
|
+
| Per-runtime transcript resolution | Automatic. The session-store resolver locates transcripts for Claude Code and Codex. |
|
|
55
|
+
| Correct Claude path encoding | Automatic. Resume validation now uses the real directory-naming convention (dots and slashes both replaced). |
|
|
56
|
+
|
|
57
|
+
## Deferred (Tracked Follow-ups)
|
|
58
|
+
|
|
59
|
+
- Threading the real per-session framework value through every flush/resume
|
|
60
|
+
call site is incremental; callers that do not pass it get the Claude
|
|
61
|
+
default (unchanged behavior).
|
|
62
|
+
- Two cross-framework gaps remain (v1.0.x): framework-aware connector-server
|
|
63
|
+
registration, and the migrator/identity-renderer unification (an
|
|
64
|
+
architecture decision being reviewed with the operator).
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Upgrade Guide — v1.0.13 (portability hardening 6 of 6 code gaps)
|
|
2
|
+
|
|
3
|
+
<!-- bump: patch -->
|
|
4
|
+
|
|
5
|
+
## What Changed
|
|
6
|
+
|
|
7
|
+
The final code-level cross-framework portability hardening patch. Five of the
|
|
8
|
+
six audit gaps shipped as v1.0.9–v1.0.12; this is the sixth (Gap 2).
|
|
9
|
+
|
|
10
|
+
When an agent joins the agent-to-agent Threadline network, the Threadline MCP
|
|
11
|
+
server was registered only into Claude Code configuration. A Codex agent had
|
|
12
|
+
the network connection running but its runtime never knew the Threadline
|
|
13
|
+
tools existed. Setup now also registers the Threadline MCP server into Codex
|
|
14
|
+
configuration when Codex is installed on the machine.
|
|
15
|
+
|
|
16
|
+
The Codex configuration format and location were verified against a live
|
|
17
|
+
Codex install, not assumed. Registration reuses the existing, already-tested
|
|
18
|
+
Codex configuration writer, so there is no second copy of that logic to drift.
|
|
19
|
+
|
|
20
|
+
## Evidence
|
|
21
|
+
|
|
22
|
+
Reproduction prior to this change: run a Codex agent, join the Threadline
|
|
23
|
+
network. The relay connects, but the Threadline MCP tools
|
|
24
|
+
(discover/send/trust/relay) are absent from the Codex runtime because
|
|
25
|
+
registration only wrote Claude Code's configuration files.
|
|
26
|
+
|
|
27
|
+
Observed after this change: on a host where Codex is installed, the
|
|
28
|
+
Threadline MCP server is also written as a `[mcp_servers."threadline"]` table
|
|
29
|
+
in Codex's user configuration, so Codex launches it and the tools are
|
|
30
|
+
reachable. On a Claude-only host (no Codex installed) nothing changes — the
|
|
31
|
+
Codex step is skipped. Existing Claude Code configuration writes are
|
|
32
|
+
byte-for-byte unchanged and still happen first.
|
|
33
|
+
|
|
34
|
+
Unit verification: `tests/unit/threadline-codex-mcp-registration.test.ts` —
|
|
35
|
+
four cases against an isolated Codex config location: the stdio server table
|
|
36
|
+
is written; re-registration replaces rather than duplicates the table;
|
|
37
|
+
unrelated operator configuration content is preserved; the registered state
|
|
38
|
+
is reported correctly. The ThreadlineBootstrap regression suite passes.
|
|
39
|
+
|
|
40
|
+
## What to Tell Your User
|
|
41
|
+
|
|
42
|
+
- "If you run an agent on Codex and connect it to the agent network, its tools now actually work from Codex, not just from Claude Code. Claude-only setups are unchanged."
|
|
43
|
+
|
|
44
|
+
## Summary of New Capabilities
|
|
45
|
+
|
|
46
|
+
| Capability | How to Use |
|
|
47
|
+
|-----------|-----------|
|
|
48
|
+
| Codex MCP registration | Automatic when joining the Threadline network on a host with Codex installed. |
|
|
49
|
+
| No-duplication guarantee | Re-running setup replaces the Threadline server entry rather than duplicating it, and leaves other Codex configuration intact. |
|
|
50
|
+
|
|
51
|
+
## Deferred (Tracked Follow-ups)
|
|
52
|
+
|
|
53
|
+
- One audit item remains: unifying the post-update migrator's identity
|
|
54
|
+
handling with the identity renderer (how the rich Claude capability
|
|
55
|
+
document relates to the canonical identity source). This is a genuine
|
|
56
|
+
architecture decision and is being reviewed with the operator rather than
|
|
57
|
+
refactored blind — it is not a deferral of doable work.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Side-effects review — Framework-aware Threadline MCP registration (Gap 2)
|
|
2
|
+
|
|
3
|
+
Per L6. Seven dimensions.
|
|
4
|
+
|
|
5
|
+
## 1. Over-block / under-block
|
|
6
|
+
|
|
7
|
+
Before: UNDER — Codex agents on the network had no advertised MCP tools.
|
|
8
|
+
After: no over-block. Codex registration only runs when `~/.codex/` exists;
|
|
9
|
+
a Claude-only host is untouched. Both Claude registration blocks are
|
|
10
|
+
byte-identical.
|
|
11
|
+
|
|
12
|
+
## 2. Level-of-abstraction fit
|
|
13
|
+
|
|
14
|
+
Reuses the existing `OpenAiCodexMcpToolRegistry` (the dedicated Codex TOML
|
|
15
|
+
writer). ThreadlineBootstrap orchestrates; the registry owns the format. No
|
|
16
|
+
TOML logic duplicated.
|
|
17
|
+
|
|
18
|
+
## 3. Signal vs Authority compliance
|
|
19
|
+
|
|
20
|
+
`~/.codex/` existence is the SIGNAL that a Codex runtime is present; the
|
|
21
|
+
registry is the single AUTHORITY for the TOML shape. No brittle inline
|
|
22
|
+
writer.
|
|
23
|
+
|
|
24
|
+
## 4. Interactions with adjacent systems
|
|
25
|
+
|
|
26
|
+
- **Claude registration (~/.claude.json, .mcp.json)** — unchanged,
|
|
27
|
+
byte-identical, still first.
|
|
28
|
+
- **OpenAiCodexMcpToolRegistry** — used as-is; its existing tests plus 4 new
|
|
29
|
+
Gap-2 tests cover the path. No change to the registry itself.
|
|
30
|
+
- **bootstrapThreadline** — the one call site now awaits the (now async)
|
|
31
|
+
registerThreadlineMcp; downstream steps already followed it sequentially,
|
|
32
|
+
so ordering is preserved.
|
|
33
|
+
- **Operator config.toml** — idempotent remove-then-append of only the
|
|
34
|
+
`threadline` table; unrelated `[mcp_servers."other"]` / `model = ...`
|
|
35
|
+
content preserved (tested).
|
|
36
|
+
|
|
37
|
+
## 5. Rollback cost
|
|
38
|
+
|
|
39
|
+
Low. One function made async + one awaited call site + one appended block +
|
|
40
|
+
one new test. `git revert` restores prior behavior. A leftover
|
|
41
|
+
`[mcp_servers."threadline"]` in a Codex config after revert is inert (Codex
|
|
42
|
+
just launches an MCP that isn't used).
|
|
43
|
+
|
|
44
|
+
## 6. Backwards compatibility / drift surface
|
|
45
|
+
|
|
46
|
+
Claude-only hosts: byte-identical behavior (Codex block gated out). Dual/
|
|
47
|
+
Codex hosts: strictly better (tools now advertised). Drift surface: none —
|
|
48
|
+
the TOML writer is the single existing registry, not a copy.
|
|
49
|
+
|
|
50
|
+
## 7. Authorization / Trust posture
|
|
51
|
+
|
|
52
|
+
No new authority. Writes only the `threadline` MCP table to a config the
|
|
53
|
+
operator's Codex already owns, gated on Codex being installed. Non-fatal:
|
|
54
|
+
failure cannot break Claude registration or bootstrap, cannot escalate.
|
|
55
|
+
|
|
56
|
+
## Outcome
|
|
57
|
+
|
|
58
|
+
Ship. Empirically grounded, reuses a tested writer (no duplication),
|
|
59
|
+
default-safe (Codex-presence gated), idempotent, operator-content
|
|
60
|
+
preserving, trivial rollback. Sixth shipped of the v1.0.9–v1.0.14 series
|
|
61
|
+
(1.0.13) — the final code-level portability gap. Gap 6 remains for operator
|
|
62
|
+
architecture review by design.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Side-effects review — FrameworkSessionStore (Gap 3)
|
|
2
|
+
|
|
3
|
+
Per L6. Seven dimensions.
|
|
4
|
+
|
|
5
|
+
## 1. Over-block / under-block
|
|
6
|
+
|
|
7
|
+
Before: UNDER — flush/resume silently no-op for Codex. After: no over-block.
|
|
8
|
+
Claude path is byte-identical (default framework = claude-code, same encoding
|
|
9
|
+
empirically confirmed against ~/.claude/projects/). Codex path returns '' when
|
|
10
|
+
no file (same safe no-op the callers already handle). No new over-block.
|
|
11
|
+
|
|
12
|
+
## 2. Level-of-abstraction fit
|
|
13
|
+
|
|
14
|
+
Path resolution extracted into one pure module (`FrameworkSessionStore`).
|
|
15
|
+
Consumers delegate. Correct altitude — resolution logic in one tested unit,
|
|
16
|
+
orchestration unchanged in the consumers.
|
|
17
|
+
|
|
18
|
+
## 3. Signal vs Authority compliance
|
|
19
|
+
|
|
20
|
+
`framework` (dep) is the SIGNAL of which runtime produced the session; the
|
|
21
|
+
resolver is the single AUTHORITY for the path. Missing/unknown framework
|
|
22
|
+
fails safe to claude-code (status quo).
|
|
23
|
+
|
|
24
|
+
## 4. Interactions with adjacent systems
|
|
25
|
+
|
|
26
|
+
- **PreCompactionFlush** — only `resolveTranscriptPath` changed; tail-read,
|
|
27
|
+
flush, audit logic untouched. 35 regression tests (with ResumeValidator)
|
|
28
|
+
green.
|
|
29
|
+
- **ResumeValidator** — delegates; the `readSessionJsonl` test override path
|
|
30
|
+
is unchanged (still wins when provided). Latent slash-only encoding bug
|
|
31
|
+
fixed (see §6).
|
|
32
|
+
- **CompactionSentinel / other transcript readers** — not touched; they can
|
|
33
|
+
adopt the resolver incrementally. No behavior change for them.
|
|
34
|
+
- **Codex sessions dir** — read-only globbing; no writes, no mutation.
|
|
35
|
+
|
|
36
|
+
## 5. Rollback cost
|
|
37
|
+
|
|
38
|
+
Low. One new module + two delegating edits + one new test. `git revert`
|
|
39
|
+
restores prior behavior. The new optional deps are ignored by callers that
|
|
40
|
+
don't set them.
|
|
41
|
+
|
|
42
|
+
## 6. Backwards compatibility / drift surface
|
|
43
|
+
|
|
44
|
+
Claude-code: byte-identical path for slash-only project dirs; for dirs
|
|
45
|
+
containing a dot, ResumeValidator now produces the CORRECT path (the real
|
|
46
|
+
~/.claude/projects/ naming replaces `.` too) — this fixes a pre-existing
|
|
47
|
+
latent failure rather than introducing one. PreCompactionFlush already used
|
|
48
|
+
the `[\/.]` encoding, so it is unchanged. This correctness delta is
|
|
49
|
+
documented, not silent. Drift surface: reduced — one resolver instead of two
|
|
50
|
+
divergent inline encodings.
|
|
51
|
+
|
|
52
|
+
## 7. Authorization / Trust posture
|
|
53
|
+
|
|
54
|
+
No new authority. Pure read-only path resolution + fs.existsSync/readdir.
|
|
55
|
+
Cannot write, cannot escalate. Unreadable/missing Codex tree → '' (safe
|
|
56
|
+
no-op).
|
|
57
|
+
|
|
58
|
+
## Outcome
|
|
59
|
+
|
|
60
|
+
Ship. Empirically grounded (no fabrication), both consumers wired, a latent
|
|
61
|
+
correctness bug fixed transparently, trivial rollback. Fourth shipped of the
|
|
62
|
+
v1.0.9–v1.0.14 hardening series (1.0.12).
|