trace-to-skill 0.1.70 → 0.1.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ import { createHash } from "node:crypto";
1
2
  import { createReadStream } from "node:fs";
2
3
  import { readdir, stat } from "node:fs/promises";
3
4
  import os from "node:os";
@@ -17,10 +18,13 @@ export async function auditCodexSessions(target = defaultCodexHome(), options =
17
18
  for (const file of discovered.jsonlFiles) {
18
19
  files.push(await analyzeJsonlFile(file, root));
19
20
  }
20
- const stateFiles = await Promise.all(discovered.stateFiles.map((file) => stateFileInfo(file, root)));
21
- const findings = buildFindings(files, stateFiles, thresholds);
22
21
  const sessionIndex = files.find((file) => path.basename(file.path) === "session_index.jsonl");
22
+ const indexEntries = sessionIndex ? await readSessionIndex(path.join(root, sessionIndex.path)) : new Map();
23
+ const threads = buildThreads(files, indexEntries);
24
+ const stateFiles = await Promise.all(discovered.stateFiles.map((file) => stateFileInfo(file, root)));
25
+ const findings = buildFindings(files, threads, stateFiles, thresholds);
23
26
  const rolloutFiles = files.filter((file) => path.basename(file.path).startsWith("rollout-")).length;
27
+ const projectKeys = new Set(threads.map((thread) => thread.cwdHash).filter(Boolean));
24
28
  const summary = {
25
29
  jsonlFiles: files.length,
26
30
  totalBytes: files.reduce((sum, file) => sum + file.sizeBytes, 0),
@@ -28,7 +32,11 @@ export async function auditCodexSessions(target = defaultCodexHome(), options =
28
32
  hugeLineFiles: files.filter((file) => file.largestLineBytes >= thresholds.hugeLineBytes).length,
29
33
  parseErrorFiles: files.filter((file) => file.jsonParseErrors > 0).length,
30
34
  sessionIndexLines: sessionIndex?.lineCount,
31
- rolloutFiles
35
+ rolloutFiles,
36
+ rolloutThreads: threads.length,
37
+ indexedThreads: threads.filter((thread) => thread.indexed).length,
38
+ unindexedRolloutThreads: threads.filter((thread) => !thread.indexed).length,
39
+ projectRoots: projectKeys.size
32
40
  };
33
41
  return {
34
42
  generatedAt: new Date().toISOString(),
@@ -37,6 +45,7 @@ export async function auditCodexSessions(target = defaultCodexHome(), options =
37
45
  thresholds,
38
46
  summary,
39
47
  files: files.sort((a, b) => b.sizeBytes - a.sizeBytes),
48
+ threads,
40
49
  stateFiles,
41
50
  findings
42
51
  };
@@ -54,6 +63,9 @@ export function renderSessionAuditMarkdown(result) {
54
63
  `Large files: ${result.summary.largeFiles}`,
55
64
  `Huge-line files: ${result.summary.hugeLineFiles}`,
56
65
  `Parse-error files: ${result.summary.parseErrorFiles}`,
66
+ `Rollout threads: ${result.summary.rolloutThreads}`,
67
+ `Indexed threads: ${result.summary.indexedThreads}`,
68
+ `Unindexed rollout threads: ${result.summary.unindexedRolloutThreads}`,
57
69
  ""
58
70
  ];
59
71
  if (result.findings.length > 0) {
@@ -64,6 +76,27 @@ export function renderSessionAuditMarkdown(result) {
64
76
  }
65
77
  lines.push("");
66
78
  }
79
+ lines.push("## Recoverable Thread Index", "");
80
+ if (result.threads.length === 0) {
81
+ lines.push("No rollout session metadata found.", "");
82
+ }
83
+ else {
84
+ lines.push("| Indexed | Thread id | Project | Created | Index title | Resume |");
85
+ lines.push("| --- | --- | --- | --- | --- | --- |");
86
+ for (const thread of result.threads.slice(0, 25)) {
87
+ const project = [thread.cwdBasename, thread.cwdHash].filter(Boolean).join(" ");
88
+ lines.push([
89
+ String(thread.indexed),
90
+ `\`${thread.id}\``,
91
+ project || "",
92
+ thread.createdAt ?? "",
93
+ thread.indexTitle ?? "",
94
+ `\`${thread.recoverCommand}\``
95
+ ].map(escapeCell).join(" | ").replace(/^/, "| ").replace(/$/, " |"));
96
+ }
97
+ lines.push("");
98
+ lines.push("This table intentionally avoids printing full workspace paths. `cwdHash` is a short hash of the original path so related threads can be grouped without exposing local directories.", "");
99
+ }
67
100
  lines.push("## Largest JSONL Files", "");
68
101
  const largest = result.files.slice(0, 10);
69
102
  if (largest.length === 0) {
@@ -95,7 +128,7 @@ export function renderSessionAuditMarkdown(result) {
95
128
  }
96
129
  lines.push("");
97
130
  }
98
- lines.push("Suggested next step:", "", "- If this report shows large rollout files or parse errors, attach this JSON/Markdown summary to the Codex issue instead of publishing private transcripts.", "- If `codex resume <id>` works but the picker freezes, include the largest file sizes and line counts from this report.", "");
131
+ lines.push("Suggested next step:", "", "- If this report shows large rollout files or parse errors, attach this JSON/Markdown summary to the Codex issue instead of publishing private transcripts.", "- If `codex resume <id>` works but the picker freezes, include the largest file sizes and line counts from this report.", "- If project history/search is empty but this report lists unindexed rollout threads, try `codex resume <thread_id>` locally and include the unindexed count plus affected hashed project group in the issue.", "");
99
132
  return lines.join("\n");
100
133
  }
101
134
  async function discoverCodexFiles(root) {
@@ -133,6 +166,7 @@ async function analyzeJsonlFile(filePath, root) {
133
166
  let lineCount = 0;
134
167
  let largestLineBytes = 0;
135
168
  let jsonParseErrors = 0;
169
+ let session;
136
170
  const input = createReadStream(filePath, { encoding: "utf8" });
137
171
  const reader = readline.createInterface({ input, crlfDelay: Infinity });
138
172
  for await (const line of reader) {
@@ -145,6 +179,7 @@ async function analyzeJsonlFile(filePath, root) {
145
179
  try {
146
180
  const parsed = JSON.parse(line);
147
181
  countParsedRecord(parsed, recordTypes, signalCounts);
182
+ session ??= extractSessionMetadata(parsed);
148
183
  }
149
184
  catch {
150
185
  jsonParseErrors += 1;
@@ -157,7 +192,8 @@ async function analyzeJsonlFile(filePath, root) {
157
192
  largestLineBytes,
158
193
  jsonParseErrors,
159
194
  recordTypes,
160
- signalCounts
195
+ signalCounts,
196
+ session
161
197
  };
162
198
  }
163
199
  async function stateFileInfo(filePath, root) {
@@ -168,7 +204,7 @@ async function stateFileInfo(filePath, root) {
168
204
  present: true
169
205
  };
170
206
  }
171
- function buildFindings(files, stateFiles, thresholds) {
207
+ function buildFindings(files, threads, stateFiles, thresholds) {
172
208
  const findings = [];
173
209
  const rolloutFiles = files.filter((file) => path.basename(file.path).startsWith("rollout-"));
174
210
  const sessionIndex = files.find((file) => path.basename(file.path) === "session_index.jsonl");
@@ -206,6 +242,16 @@ function buildFindings(files, stateFiles, thresholds) {
206
242
  message: `session_index.jsonl has ${sessionIndex.lineCount} lines for ${rolloutFiles.length} rollout file(s); this can indicate an incomplete sidebar index.`
207
243
  });
208
244
  }
245
+ if (sessionIndex) {
246
+ for (const thread of threads.filter((item) => !item.indexed).slice(0, 10)) {
247
+ findings.push({
248
+ severity: "warning",
249
+ kind: "unindexed_rollout_thread",
250
+ path: thread.path,
251
+ message: `Rollout thread ${thread.id} has session metadata but no matching session_index.jsonl row; project/search UI may hide it while direct resume can still work.`
252
+ });
253
+ }
254
+ }
209
255
  for (const stateFile of stateFiles.filter((file) => file.path.endsWith(".sqlite"))) {
210
256
  findings.push({
211
257
  severity: "warning",
@@ -216,6 +262,79 @@ function buildFindings(files, stateFiles, thresholds) {
216
262
  }
217
263
  return findings;
218
264
  }
265
+ async function readSessionIndex(filePath) {
266
+ const entries = new Map();
267
+ const input = createReadStream(filePath, { encoding: "utf8" });
268
+ const reader = readline.createInterface({ input, crlfDelay: Infinity });
269
+ for await (const line of reader) {
270
+ if (!line.trim()) {
271
+ continue;
272
+ }
273
+ try {
274
+ const parsed = JSON.parse(line);
275
+ const id = typeof parsed.id === "string" ? parsed.id : undefined;
276
+ if (!id) {
277
+ continue;
278
+ }
279
+ entries.set(id, {
280
+ id,
281
+ title: firstString(parsed.thread_name, parsed.title, parsed.name),
282
+ updatedAt: firstString(parsed.updated_at, parsed.updatedAt)
283
+ });
284
+ }
285
+ catch {
286
+ continue;
287
+ }
288
+ }
289
+ return entries;
290
+ }
291
+ function buildThreads(files, indexEntries) {
292
+ return files
293
+ .filter((file) => path.basename(file.path).startsWith("rollout-") && file.session)
294
+ .map((file) => {
295
+ const session = file.session;
296
+ const indexed = indexEntries.get(session.id);
297
+ return {
298
+ id: session.id,
299
+ path: file.path,
300
+ indexed: indexed !== undefined,
301
+ indexTitle: indexed?.title,
302
+ indexUpdatedAt: indexed?.updatedAt,
303
+ createdAt: session.createdAt,
304
+ cwdBasename: session.cwdBasename,
305
+ cwdHash: session.cwdHash,
306
+ originator: session.originator,
307
+ cliVersion: session.cliVersion,
308
+ sourceKind: session.sourceKind,
309
+ recoverCommand: `codex resume ${session.id}`
310
+ };
311
+ })
312
+ .sort((a, b) => (b.createdAt ?? "").localeCompare(a.createdAt ?? ""));
313
+ }
314
+ function extractSessionMetadata(parsed) {
315
+ if (!parsed || typeof parsed !== "object") {
316
+ return undefined;
317
+ }
318
+ const record = parsed;
319
+ if (record.type !== "session_meta") {
320
+ return undefined;
321
+ }
322
+ const payload = record.payload && typeof record.payload === "object" ? record.payload : undefined;
323
+ const id = typeof payload?.id === "string" ? payload.id : undefined;
324
+ if (!id) {
325
+ return undefined;
326
+ }
327
+ const cwd = typeof payload?.cwd === "string" ? payload.cwd : undefined;
328
+ return {
329
+ id,
330
+ createdAt: firstString(payload?.timestamp, record.timestamp),
331
+ cwdBasename: cwd ? path.basename(cwd) : undefined,
332
+ cwdHash: cwd ? createHash("sha256").update(cwd).digest("hex").slice(0, 12) : undefined,
333
+ originator: firstString(payload?.originator),
334
+ cliVersion: firstString(payload?.cli_version),
335
+ sourceKind: sourceKind(payload?.source)
336
+ };
337
+ }
219
338
  function countRawSignals(line, signalCounts) {
220
339
  for (const [key, pattern] of [
221
340
  ["input_image", /input_image/g],
@@ -257,6 +376,25 @@ function formatSignals(signals) {
257
376
  }
258
377
  return entries.map(([key, count]) => `${key}:${count}`).join(", ");
259
378
  }
379
+ function firstString(...values) {
380
+ return values.find((value) => typeof value === "string" && value.length > 0);
381
+ }
382
+ function sourceKind(source) {
383
+ if (typeof source === "string") {
384
+ return source;
385
+ }
386
+ if (source && typeof source === "object") {
387
+ const object = source;
388
+ if (object.subagent) {
389
+ return "subagent";
390
+ }
391
+ return "object";
392
+ }
393
+ return undefined;
394
+ }
395
+ function escapeCell(value) {
396
+ return value.replace(/\|/g, "\\|").replace(/\n/g, " ");
397
+ }
260
398
  function defaultCodexHome() {
261
399
  return path.join(os.homedir(), ".codex");
262
400
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sessionAudit.js","sourceRoot":"","sources":["../../src/sessionAudit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionAudit.js","sourceRoot":"","sources":["../../src/sessionAudit.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,7 @@ For dashboards, bots, or custom CI:
95
95
  - `schemas/doctor-result.schema.json` describes `trace-to-skill doctor --format json`.
96
96
  - `schemas/redact-result.schema.json` describes `trace-to-skill redact --format json`.
97
97
  - `schemas/scorecard-result.schema.json` describes `trace-to-skill scorecard --format json`.
98
+ - `schemas/workspace-checkpoint-result.schema.json` describes `trace-to-skill checkpoint --format json`.
98
99
 
99
100
  Use the schemas instead of scraping Markdown reports.
100
101
 
@@ -13,6 +13,7 @@ npx trace-to-skill codex-report redacted-runs --output openai-codex-issue.md
13
13
  npx trace-to-skill usage-evidence ./usage-notes.md --output usage-evidence.md
14
14
  npx trace-to-skill plugin-audit ~/.codex --app /Applications/Codex.app --format json
15
15
  npx trace-to-skill diagnostics-bundle ~/.codex --output codex-diagnostics
16
+ npx trace-to-skill checkpoint . --output .trace-to-skill/checkpoints/before-codex
16
17
  npx trace-to-skill sensitive-audit . --format json
17
18
  npx trace-to-skill lsp-audit . --format json
18
19
  ```
@@ -27,6 +28,7 @@ npx trace-to-skill lsp-audit . --format json
27
28
  | Windows helper and bundled tool path failures | bundled `rg.exe`, `node_repl.exe`, `codex-command-runner.exe`, Browser, Chrome, or Computer Use helpers resolve through `WindowsApps`, missing `%LOCALAPPDATA%\OpenAI\Codex\bin`, broken LocalCache helper bins, `CodexSandboxUsers` ACL gaps, EFS/copyfile failures | `codex_windows_helper_path` | `trace-to-skill codex-report ./runs` |
28
29
  | Resource leaks and runaway processes | high CPU/GPU/RAM, `Code Helper`, `Codex Helper Renderer`, orphaned `shell-snapshot`, `syspolicyd`, log floods, thinking animation GPU loops | `codex_resource_leak` | `trace-to-skill codex-report ./runs` |
29
30
  | Tool-call integrity and rollback failures | `apply_patch` overwrites an existing `Add File` target, unmatched `tool_call_id`, `close_agent` hangs, failed revert/undo, unsafe diff application | `codex_tool_call_integrity` | `trace-to-skill codex-report ./runs` or `trace-to-skill guard-patch ./change.patch --root .` |
31
+ | Undo, rewind, and pre-agent checkpoint needs | users want `/undo` or `/rewind`, double-Esc only rewinds chat state, untracked/gitignored files are not protected by commits, and manual recovery needs reviewable pre-agent evidence | workspace checkpoint bundle | `trace-to-skill checkpoint . --output .trace-to-skill/checkpoints/before-codex` before agent work |
30
32
  | Latency regressions | GPT-5.5 Fast feels like Standard, simple tasks take 10-20+ minutes, pre-first-token or thinking stalls, slow search/read/compaction, hours for small code changes | `codex_latency_regression` | `trace-to-skill codex-report ./runs` |
31
33
  | Thinking or stream hangs | accepted turn, completed local tool output, no streamed assistant follow-up, long gap before first `response_item`, `time.busy` milliseconds with `time.idle` hundreds of seconds, Stop/Ctrl+C cannot interrupt, subagent parent stuck | `codex_thinking_hang` | `trace-to-skill codex-report ./runs` or `trace-to-skill demo thinking-hang` |
32
34
  | Clipboard, paste, and generated attachment regressions | `Copy as Markdown` missing, Copy menu only exports metadata, long pasted prompts become `Pasted text.txt`, generated attachments cannot preview/edit/revert, `/goal` ignores non-empty fileAttachments | `codex_clipboard_attachment` | `trace-to-skill codex-report ./runs` or `trace-to-skill demo clipboard-attachment` |
@@ -44,7 +46,7 @@ npx trace-to-skill lsp-audit . --format json
44
46
  | LSP auto-detect readiness | Codex users want language-aware navigation, diagnostics, references, rename, or install guidance before edits | language-server metadata | `trace-to-skill lsp-audit . --format json` |
45
47
  | Context compaction failures | `Error running remote compact task`, `context_length_exceeded`, compaction loops, `responses/compact` stream disconnects | `context_compaction` | `trace-to-skill analyze ./runs` |
46
48
  | Latest-turn drift | Codex answers an older prompt, repeats a previous response, redoes an already fixed task, forgets recent edits after compaction, or leaks raw tool payload text | `codex_latest_turn_drift` | `trace-to-skill codex-report ./runs` |
47
- | Session resume and state failures | `codex resume` picker freezes, large rollout JSONL, short `session_index.jsonl`, `Could not load archived chats`, `state_5.sqlite`, `thread_goals` | `codex_session_state` | `trace-to-skill codex-report ./runs` or `trace-to-skill session-audit ~/.codex --format json` |
49
+ | Session resume, project history, and state failures | `codex resume` picker freezes, Desktop project/search/sidebar hides existing threads, large rollout JSONL, short or stale `session_index.jsonl`, unindexed rollout thread ids, `Could not load archived chats`, `state_5.sqlite`, `thread_goals` | `codex_session_state` | `trace-to-skill codex-report ./runs` or `trace-to-skill session-audit ~/.codex --format json` |
48
50
  | Sandbox and permission blockers | Windows sandbox setup refresh, `os error 740`, ACL/ownership drift, approval-mode mismatch | `sandbox_permission` | `trace-to-skill analyze ./runs` |
49
51
  | Auth and connectivity failures | `token_exchange_failed`, `auth.openai.com/oauth/token`, missing CA certificates, proxy/TLS, IPv6, Cloudflare, stream disconnects | `codex_connectivity` | `trace-to-skill codex-report ./runs` |
50
52
  | Remote-control routing failures | `Waiting for desktop`, `Directory: Unavailable`, stale listener/enrollment, `127.0.0.1:14567`, empty backend environments | `codex_remote_control` | `trace-to-skill codex-report ./runs` |
@@ -65,7 +67,8 @@ npx trace-to-skill lsp-audit . --format json
65
67
  - Include `Get-Command rg -All`, `where.exe rg`, exact WindowsApps/LocalCache helper paths, `%LOCALAPPDATA%\OpenAI\Codex\bin` listing, `icacls`/`CodexSandboxUsers` RX state, file attributes, node_repl/plugin diagnostics, and sandbox mode for Windows helper path failures.
66
68
  - Include process names/PIDs, CPU/GPU/RSS samples, log-loop signatures, and whether killing exact PIDs or closing the app clears resource leaks.
67
69
  - Include exact tool input/output, `tool_call_id` order, affected path state, rollback evidence, and `guard-patch` output for tool-call integrity failures.
68
- - Include `session-audit` output, largest rollout JSONL sizes, largest line sizes, parse-error counts, `session_index.jsonl` line count, and state-file presence for resume/session-state failures.
70
+ - For undo/rewind reports, include whether you needed conversation rewind, file restore, or both; whether untracked/gitignored files were involved; and a pre-agent `checkpoint` manifest if you created one.
71
+ - Include `session-audit` output, largest rollout JSONL sizes, largest line sizes, parse-error counts, `session_index.jsonl` line count, unindexed rollout thread count, recoverable `codex resume <id>` commands, hashed project groups, and state-file presence for resume/session-state failures.
69
72
  - Include `diagnostics-bundle` output when the issue spans config plus local session/history state, or when you need one metadata-only folder that excludes raw logs, SQLite databases, raw config, and transcripts.
70
73
  - Include pre-first-token, thinking, tool, search, read, and compaction timings plus model/speed settings for latency regressions.
71
74
  - Include `turn/start`, `task_started`, last successful tool output, first `response_item` timestamp, `responses_http` or websocket evidence, `time.busy` / `time.idle`, MCP/subagent state, stop/interrupt behavior, and minimal-config recovery evidence for Thinking hangs.
@@ -95,6 +98,7 @@ npx trace-to-skill lsp-audit . --format json
95
98
  - Windows helper and bundled tool path failures: https://github.com/openai/codex/issues/13542, https://github.com/openai/codex/issues/25357, https://github.com/openai/codex/issues/25220
96
99
  - Resource leaks and runaway processes: https://github.com/openai/codex/issues/16231, https://github.com/openai/codex/issues/11981, https://github.com/openai/codex/issues/16857, https://github.com/openai/codex/issues/25388
97
100
  - Tool-call integrity and rollback failures: https://github.com/openai/codex/issues/25399, https://github.com/openai/codex/issues/25380, https://github.com/openai/codex/issues/25426, https://github.com/openai/codex/issues/7291
101
+ - Undo, rewind, and pre-agent checkpoint needs: https://github.com/openai/codex/issues/9203, https://github.com/openai/codex/issues/11626
98
102
  - Latency regressions: https://github.com/openai/codex/issues/24422, https://github.com/openai/codex/issues/21527, https://github.com/openai/codex/issues/11984, https://github.com/openai/codex/issues/12161
99
103
  - Deeplink, OAuth callback, and external launch regressions: https://github.com/openai/codex/issues/25203, https://github.com/openai/codex/issues/25231, https://github.com/openai/codex/issues/25368, https://github.com/openai/codex/issues/25333
100
104
  - App connector auth cache and stale link regressions: https://github.com/openai/codex/issues/24675, https://github.com/openai/codex/issues/25443
@@ -104,7 +108,7 @@ npx trace-to-skill lsp-audit . --format json
104
108
  - Approval persistence and MCP approval friction: https://github.com/openai/codex/issues/4212, https://github.com/openai/codex/issues/13476, https://github.com/openai/codex/issues/2998
105
109
  - Config and Preferences drift: https://github.com/openai/codex/issues/25440, https://github.com/openai/codex/issues/25442, https://github.com/openai/codex/issues/20538, https://github.com/openai/codex/issues/24963
106
110
  - Latest-turn drift and compaction memory loss: https://github.com/openai/codex/issues/8648, https://github.com/openai/codex/issues/5957, https://github.com/openai/codex/issues/10823, https://github.com/openai/codex/issues/11626
107
- - Session state and resume failures: https://github.com/openai/codex/issues/25430, https://github.com/openai/codex/issues/25390, https://github.com/openai/codex/issues/25394, https://github.com/openai/codex/issues/25407
111
+ - Session state, project history, and resume failures: https://github.com/openai/codex/issues/25463, https://github.com/openai/codex/issues/25092, https://github.com/openai/codex/issues/23193, https://github.com/openai/codex/issues/21119, https://github.com/openai/codex/issues/25456, https://github.com/openai/codex/issues/25430, https://github.com/openai/codex/issues/25390, https://github.com/openai/codex/issues/25394, https://github.com/openai/codex/issues/25407
108
112
  - MCP runtime failures: https://github.com/openai/codex/issues/16685, https://github.com/openai/codex/issues/18977, https://github.com/openai/codex/issues/24297, https://github.com/openai/codex/issues/23839
109
113
  - Plugin runtime and bundled capability failures: https://github.com/openai/codex/issues/25391, https://github.com/openai/codex/issues/25418, https://github.com/openai/codex/issues/25406, https://github.com/openai/codex/issues/18258
110
114
  - File tree and workspace navigation UI failures: https://github.com/openai/codex/issues/20552
package/docs/DISCOVERY.md CHANGED
@@ -33,7 +33,7 @@ This page is written for maintainers, search engines, package indexes, and AI re
33
33
  - Codex approval flow repeatedly prompts after `Approve for this session`, forgets a safe approval scope, or forces large trusted MCP servers into noisy per-tool approval configs.
34
34
  - Codex config drift makes Preferences unable to save, keeps legacy `profile` / `[profiles.*]` config after migration, pins an unavailable model, resets Speed/Fast to Standard despite persisted `service_tier`, points `default_permissions` at a missing profile, enables Windows elevated sandbox mode, or references plugin cache entries that are missing on disk.
35
35
  - Codex Desktop file tree, folder icon, floating file panel, or built-in file preview disappears, goes stale, or cannot be revealed by `View > Toggle File Tree`.
36
- - Codex resume, Desktop history rendering, archived chats, context compression, or local state migrations fail after large JSONL histories, images, tool output, stale SQLite state, short `session_index.jsonl`, or project/thread metadata drift.
36
+ - Codex resume, Desktop project history/search/sidebar rendering, archived chats, context compression, or local state migrations fail after large JSONL histories, images, tool output, stale SQLite state, short or stale `session_index.jsonl`, unindexed rollout threads, or project/thread metadata drift.
37
37
  - Codex model or runtime latency regresses so GPT-5.5 Fast feels like Standard, simple tasks take 10-20+ minutes, thinking stalls, or search/read/compaction phases dominate the session.
38
38
  - Codex accepts a turn, finishes local tools, or leaves a Responses stream open while the UI/CLI stays on Thinking or Working with no streamed follow-up.
39
39
  - Codex copy/export, long pasted prompts, or generated `Pasted text.txt` attachments break instruction, `/goal`, preview/edit, or support-report workflows.
@@ -43,6 +43,7 @@ This page is written for maintainers, search engines, package indexes, and AI re
43
43
  - Codex weekly or 5-hour reset anchors move unexpectedly, saved usage is lost, or `/status` and the dashboard disagree about reset timing or enforcement.
44
44
  - Codex usage evidence is scattered across `/status`, dashboard notes, reset tables, usage-limit messages, token totals, cached input, and overhead clues, making high-signal reports hard to file.
45
45
  - Codex token-burn reports need a receipt that separates backend quota-window percentages, local token totals, and orchestration overhead such as background polling, compaction loops, retry/tool loops, subagent fan-out, or idle drain.
46
+ - Codex users need a local checkpoint before agent edits because conversation rewind does not protect untracked dirty workspace files.
46
47
  - Codex `/compact` or auto-compaction fails against the remote `responses/compact` endpoint with stream disconnects, child-process timeout messages, provider timeout workarounds, or long-thread recovery loss.
47
48
  - Codex Desktop, app-server, VS Code extension, renderer, GPU, shell snapshot, or helper processes leak local resources or keep burning CPU/GPU/RAM after the useful work should be idle.
48
49
  - Codex reports `You've hit your usage limit` even though `/status` or the usage dashboard shows quota left, or quota appears shared across accounts.
@@ -86,6 +87,7 @@ npx trace-to-skill config-audit ~/.codex --format json
86
87
  npx trace-to-skill plugin-audit ~/.codex --app /Applications/Codex.app --format json
87
88
  npx trace-to-skill diagnostics-bundle ~/.codex --output codex-diagnostics
88
89
  npx trace-to-skill usage-evidence ./usage-notes.md --output usage-evidence.md
90
+ npx trace-to-skill checkpoint . --output .trace-to-skill/checkpoints/before-codex
89
91
  npx trace-to-skill redact ./runs --output redacted-runs
90
92
  npx trace-to-skill analyze ./runs --format json
91
93
  npx trace-to-skill codex-report ./runs --output openai-codex-issue.md
@@ -107,6 +109,7 @@ npx trace-to-skill suggest ./runs --target agents-md
107
109
  - `trace-to-skill plugin-audit --format json`
108
110
  - `trace-to-skill diagnostics-bundle --format json`
109
111
  - `trace-to-skill usage-evidence --format json`
112
+ - `trace-to-skill checkpoint --format json`
110
113
  - SARIF from `trace-to-skill analyze --format sarif`
111
114
  - OpenAI/Codex issue-ready Markdown from `trace-to-skill codex-report`
112
115
  - Packaged zero-setup Codex issue-report demo from `trace-to-skill demo`
@@ -130,10 +133,11 @@ npx trace-to-skill suggest ./runs --target agents-md
130
133
  - `schemas/plugin-audit-result.schema.json`
131
134
  - `schemas/session-audit-result.schema.json`
132
135
  - `schemas/usage-evidence-result.schema.json`
136
+ - `schemas/workspace-checkpoint-result.schema.json`
133
137
 
134
138
  ## Related Keywords
135
139
 
136
- Codex, OpenAI Codex, Codex issue report, OpenAI triage, Codex LSP, Codex language server, lsp-audit, language-server readiness, typescript-language-server, pyright-langserver, gopls, rust-analyzer, sourcekit-lsp, clangd, Codex diagnostics bundle, privacy-preserving support bundle, sensitive path audit, sensitive-audit, agentignore, .agentignore, codexignore, .codexignore, aiexclude, .aiexclude, exclude sensitive files, Codex plugin audit, Computer Use unavailable, Codex Browser plugin unavailable, bundled marketplace mismatch, generated runtime marketplace, plugin manifest missing, CODEX_HOME mismatch, Codex CLI, Codex sandbox, Windows sandbox, Codex config audit, Codex config.toml, Codex global state, .codex-global-state.json, Codex Speed reset, Codex Fast resets to Standard, service_tier fast, default-service-tier priority, has-user-changed-service-tier, Codex Preferences unable to save, configVersionConflict, default_permissions missing profile, Codex Windows helper path, Codex WindowsApps, Codex rg Access Denied, Codex ripgrep, CodexSandboxUsers, LocalCache Local OpenAI Codex bin, node_repl spawn setup refresh, Codex approval friction, Approve for this session, Allow for this session, approval_policy never, MCP approval prompts, default_tools_approval_mode, Playwright MCP approvals, Chrome DevTools MCP approvals, Codex auth, token_exchange_failed, Codex connectivity, stream disconnected, Codex connector auth cache, Codex Apps stale link, codex_apps_tools, codex_app_directory, Reauthentication required, refresh token revoked, isAccessible false, link_ connector, Codex deeplink, Codex OAuth callback, codex://oauth_callback, Unable to find Electron app, Error launching app, type=click&tag, AppUserModelID, DelegateExecute, codex app path, Codex remote compact, responses/compact, /compact timeout, tcp_user_timeout, stream_idle_timeout_ms, Codex remote control, Codex mobile, Waiting for desktop, Directory Unavailable, stale listener, Codex terminal output, Codex scrollback, Codex terminal history, terminal output integrity, missing_count, missing_examples, tmux_scrollback_repro.sh, line_truncation_repro.md, Windows Terminal scrollback, transcript mode, Codex subagent lifecycle, stale subagents, close_agent, thread_spawn_edges, agent thread limit reached, agents.max_threads, list_agents, /agents, subagent child threads, fork_context, unbiased review, subagent recent conversations, Codex MCP runtime, MCP unsupported call, mcp__node_repl__js, MCP namespace serverName, MCP Transport closed, StdioServerTransport, Codex plugin runtime, Computer Use native pipe path unavailable, SKY_CUA_NATIVE_PIPE_DIRECTORY, Plugin loading failed, plugin/list unknown variant vertical, Codex Browser plugin, Codex Computer Use, Codex Chrome plugin, stale plugin cache, codex plugin add, Codex file tree, Toggle File Tree, missing folder icon, floating file panel stale, file preview fails, workspace navigation, Codex latest-turn drift, Codex replies to earlier messages, stale prompt response, ignoring latest message, previous prompt, auto compaction forgets edits, raw tool payload leak, write_stdin session_id, Codex latency regression, GPT-5.5 Fast slow, Codex too slow, thinking stalls, Codex thinking hang, Codex stuck thinking, Codex Working stuck, no streamed follow-up, first response_item delayed, responses_http time.idle, model_client.stream_responses_api, turn/start, task_started, Codex Copy as Markdown missing, Codex Pasted text.txt, Codex long pasted prompt attachment, Codex clipboard export, Codex paste as text, Codex generated attachment preview edit, Codex goal ignores attachment, pasted-text-attachments.json, fileAttachments promptRaw composer.getText, pre-first-token latency, search/read latency, runtime scheduling latency, Codex resume, Codex session audit, Codex history audit, Codex session index, session_index.jsonl, Codex session state, rollout JSONL, logs_2.sqlite, codex-tui.log, sandbox.log, thread_goals, state_5.sqlite, goals_1.sqlite, archived chats, Codex token burn, Codex usage evidence, Codex rate-limit evidence, Codex usage drain, Codex usage reset, Codex weekly reset drift, reset_at changed, deterministic reset, rate limit reset, write_stdin polling, cached input tokens, compaction tax, background process polling, Codex resource leak, Codex performance, high CPU, high GPU, shell-snapshot, Code Helper Renderer, Codex tool-call integrity, apply_patch, apply_patch Add File overwrite, patch guard, guard-patch, Add File symlink, tool_call_id, failed revert changes, patch safety, Codex quota, usage limit, rate limits, sensitive files, Codex privacy, .env, private keys, credential files, AGENTS.md, SKILL.md, Claude Code, Cursor, Copilot coding agent, Gemini CLI, MCP, Model Context Protocol, prompt injection, agent evals, AI code review, open-source maintainers, trace redaction, SARIF, GitHub Actions.
140
+ Codex, OpenAI Codex, Codex issue report, OpenAI triage, Codex LSP, Codex language server, lsp-audit, language-server readiness, typescript-language-server, pyright-langserver, gopls, rust-analyzer, sourcekit-lsp, clangd, Codex diagnostics bundle, privacy-preserving support bundle, workspace checkpoint, pre-agent checkpoint, Codex undo, Codex rewind, untracked file restore, sensitive path audit, sensitive-audit, agentignore, .agentignore, codexignore, .codexignore, aiexclude, .aiexclude, exclude sensitive files, Codex plugin audit, Computer Use unavailable, Codex Browser plugin unavailable, bundled marketplace mismatch, generated runtime marketplace, plugin manifest missing, CODEX_HOME mismatch, Codex CLI, Codex sandbox, Windows sandbox, Codex config audit, Codex config.toml, Codex global state, .codex-global-state.json, Codex Speed reset, Codex Fast resets to Standard, service_tier fast, default-service-tier priority, has-user-changed-service-tier, Codex Preferences unable to save, configVersionConflict, default_permissions missing profile, Codex Windows helper path, Codex WindowsApps, Codex rg Access Denied, Codex ripgrep, CodexSandboxUsers, LocalCache Local OpenAI Codex bin, node_repl spawn setup refresh, Codex approval friction, Approve for this session, Allow for this session, approval_policy never, MCP approval prompts, default_tools_approval_mode, Playwright MCP approvals, Chrome DevTools MCP approvals, Codex auth, token_exchange_failed, Codex connectivity, stream disconnected, Codex connector auth cache, Codex Apps stale link, codex_apps_tools, codex_app_directory, Reauthentication required, refresh token revoked, isAccessible false, link_ connector, Codex deeplink, Codex OAuth callback, codex://oauth_callback, Unable to find Electron app, Error launching app, type=click&tag, AppUserModelID, DelegateExecute, codex app path, Codex remote compact, responses/compact, /compact timeout, tcp_user_timeout, stream_idle_timeout_ms, Codex remote control, Codex mobile, Waiting for desktop, Directory Unavailable, stale listener, Codex terminal output, Codex scrollback, Codex terminal history, terminal output integrity, missing_count, missing_examples, tmux_scrollback_repro.sh, line_truncation_repro.md, Windows Terminal scrollback, transcript mode, Codex subagent lifecycle, stale subagents, close_agent, thread_spawn_edges, agent thread limit reached, agents.max_threads, list_agents, /agents, subagent child threads, fork_context, unbiased review, subagent recent conversations, Codex MCP runtime, MCP unsupported call, mcp__node_repl__js, MCP namespace serverName, MCP Transport closed, StdioServerTransport, Codex plugin runtime, Computer Use native pipe path unavailable, SKY_CUA_NATIVE_PIPE_DIRECTORY, Plugin loading failed, plugin/list unknown variant vertical, Codex Browser plugin, Codex Computer Use, Codex Chrome plugin, stale plugin cache, codex plugin add, Codex file tree, Toggle File Tree, missing folder icon, floating file panel stale, file preview fails, workspace navigation, Codex project history disappeared, Codex project threads hidden, Codex session index repair, unindexed rollout thread, codex resume thread id, Codex latest-turn drift, Codex replies to earlier messages, stale prompt response, ignoring latest message, previous prompt, auto compaction forgets edits, raw tool payload leak, write_stdin session_id, Codex latency regression, GPT-5.5 Fast slow, Codex too slow, thinking stalls, Codex thinking hang, Codex stuck thinking, Codex Working stuck, no streamed follow-up, first response_item delayed, responses_http time.idle, model_client.stream_responses_api, turn/start, task_started, Codex Copy as Markdown missing, Codex Pasted text.txt, Codex long pasted prompt attachment, Codex clipboard export, Codex paste as text, Codex generated attachment preview edit, Codex goal ignores attachment, pasted-text-attachments.json, fileAttachments promptRaw composer.getText, pre-first-token latency, search/read latency, runtime scheduling latency, Codex resume, Codex session audit, Codex history audit, Codex history map, Codex session index, session_index.jsonl, Codex session state, rollout JSONL, logs_2.sqlite, codex-tui.log, sandbox.log, thread_goals, state_5.sqlite, goals_1.sqlite, archived chats, Codex token burn, Codex usage evidence, Codex rate-limit evidence, Codex usage drain, Codex usage reset, Codex weekly reset drift, reset_at changed, deterministic reset, rate limit reset, write_stdin polling, cached input tokens, compaction tax, background process polling, Codex resource leak, Codex performance, high CPU, high GPU, shell-snapshot, Code Helper Renderer, Codex tool-call integrity, apply_patch, apply_patch Add File overwrite, patch guard, guard-patch, Add File symlink, tool_call_id, failed revert changes, patch safety, Codex quota, usage limit, rate limits, sensitive files, Codex privacy, .env, private keys, credential files, AGENTS.md, SKILL.md, Claude Code, Cursor, Copilot coding agent, Gemini CLI, MCP, Model Context Protocol, prompt injection, agent evals, AI code review, open-source maintainers, trace redaction, SARIF, GitHub Actions.
137
141
 
138
142
  ## Non-Goals
139
143
 
@@ -3,7 +3,7 @@
3
3
  | Field | Value |
4
4
  | --- | --- |
5
5
  | Repository | https://github.com/grnbtqdbyx-create/trace-to-skill |
6
- | Package | trace-to-skill@0.1.70 |
6
+ | Package | trace-to-skill@0.1.72 |
7
7
  | License | Apache-2.0 |
8
8
  | Codex readiness | ready (100/100) |
9
9
  | Benchmark | pass, 33 cases |
@@ -27,7 +27,7 @@ API credits would power optional maintainer workflows on top of the local determ
27
27
  ## Evidence
28
28
 
29
29
  - Public repository: https://github.com/grnbtqdbyx-create/trace-to-skill
30
- - One-command package: npx trace-to-skill@0.1.70
30
+ - One-command package: npx trace-to-skill@0.1.72
31
31
  - Open-source license: Apache-2.0
32
32
  - Codex readiness doctor: ready, 100/100, 0 failed checks.
33
33
  - Public fixture benchmark: pass, 33 cases.
package/docs/USE_CASES.md CHANGED
@@ -53,7 +53,7 @@ What it proves:
53
53
  Recommended CI surface:
54
54
 
55
55
  ```yaml
56
- - uses: grnbtqdbyx-create/trace-to-skill@v0.1.70
56
+ - uses: grnbtqdbyx-create/trace-to-skill@v0.1.72
57
57
  with:
58
58
  mode: all
59
59
  doctor-threshold: "85"
@@ -230,9 +230,9 @@ npx trace-to-skill plugin-audit ~/.codex --app /Applications/Codex.app --format
230
230
  npx trace-to-skill diagnostics-bundle ~/.codex --output codex-diagnostics
231
231
  ```
232
232
 
233
- This catches signals such as `codex resume` picker hangs, `codex resume <id>` working while the picker freezes, large `rollout-*.jsonl` histories, high JSONL line and `response_item` / `event_msg` / `function_call` counts, large `input_image` payloads, slow `thread/resume` and `thread/goal/get` timings, `Could not load archived chats`, resume compression dropping the last 3-5 turns, `state_5.sqlite` / `goals_1.sqlite` migration mismatches, `no such table: thread_goals`, stale `projectless-thread-ids`, and `thread-workspace-root-hints` reverting after restart.
233
+ This catches signals such as `codex resume` picker hangs, `codex resume <id>` working while the picker freezes, project pages/search/sidebar hiding threads that still exist on disk, large `rollout-*.jsonl` histories, high JSONL line and `response_item` / `event_msg` / `function_call` counts, large `input_image` payloads, slow `thread/resume` and `thread/goal/get` timings, `Could not load archived chats`, resume compression dropping the last 3-5 turns, `state_5.sqlite` / `goals_1.sqlite` migration mismatches, `no such table: thread_goals`, stale `projectless-thread-ids`, and `thread-workspace-root-hints` reverting after restart.
234
234
 
235
- `session-audit` is local and read-only: it reports rollout JSONL size, line count, largest line size, parse errors, session index line count, state-file presence, and common session signals so users can attach a privacy-preserving summary to OpenAI/Codex issues instead of posting transcripts.
235
+ `session-audit` is local and read-only: it reports rollout JSONL size, line count, largest line size, parse errors, session index line count, state-file presence, recoverable thread ids, `codex resume <id>` commands, and common session signals so users can attach a privacy-preserving summary to OpenAI/Codex issues instead of posting transcripts. Full workspace paths are not printed in the thread table; related projects are grouped by basename plus a short path hash.
236
236
 
237
237
  For mixed resume, crash, config, plugin, or history issues, `diagnostics-bundle` writes the session, config, and plugin reports together with a checklist of files not to attach publicly.
238
238
 
@@ -394,7 +394,20 @@ This finds sensitive-looking paths such as `.env`, `.env.*`, `.npmrc`, `.pypirc`
394
394
 
395
395
  The output includes a stable JSON schema plus recommended exclude globs that can seed `.agentignore`, `.aiexclude`, `.codexignore`, local sandbox permission profiles, or team security review checklists. It is a preflight report, not a sandbox boundary.
396
396
 
397
- ## 27. OpenAI Codex Issue Report
397
+ ## 27. Workspace Checkpoint Before Agent Runs
398
+
399
+ Use this before giving Codex, Claude, Cursor, or another coding agent a dirty repository where untracked local work matters.
400
+
401
+ ```bash
402
+ npx trace-to-skill checkpoint . --output .trace-to-skill/checkpoints/before-codex
403
+ npx trace-to-skill checkpoint . --format json
404
+ ```
405
+
406
+ This writes a local checkpoint bundle with `status.txt`, staged and unstaged binary diffs, a `manifest.json`, restore notes, and copied blobs for changed or untracked files. It is intentionally conservative: it does not auto-restore files and does not run destructive commands. Gitignored files are excluded by default; use `--include-ignored` only when you intentionally need local-only files such as `.env`, and keep that bundle private.
407
+
408
+ This is useful for OpenAI/Codex `/undo` and `/rewind` discussions where users need workspace protection beyond conversation rewind, especially when untracked files are outside normal commit history.
409
+
410
+ ## 28. OpenAI Codex Issue Report
398
411
 
399
412
  Use this when you want to file or update an OpenAI/Codex issue with a concise, evidence-backed report instead of pasting a full transcript.
400
413
 
@@ -407,7 +420,7 @@ The report includes the likely Codex failure class, line-linked evidence, diagno
407
420
 
408
421
  For a cluster-to-command map of current Codex issue patterns, see [CODEX_ISSUE_MAP.md](CODEX_ISSUE_MAP.md).
409
422
 
410
- ## 28. Sensitive File Access Evidence
423
+ ## 29. Sensitive File Access Evidence
411
424
 
412
425
  Use this when a trace suggests an agent read, attached, uploaded, diffed, or indexed credential-bearing files.
413
426
 
@@ -420,7 +433,7 @@ This catches signals such as `.env`, `.env.production`, `.npmrc`, `.pypirc`, `.n
420
433
 
421
434
  Before publishing evidence, run `trace-to-skill redact` and attach only redacted excerpts plus the file path/class.
422
435
 
423
- ## 29. GitHub Context Guard
436
+ ## 30. GitHub Context Guard
424
437
 
425
438
  Use this before an agent reads untrusted GitHub text.
426
439
 
package/llms.txt CHANGED
@@ -36,6 +36,7 @@ Runtime: Node.js 20+
36
36
  - Codex usage reset schedule drift such as weekly reset dates moving, `reset_at` jumping, saved usage disappearing, outage compensation resets changing the anchor, and `/status` disagreeing with enforcement
37
37
  - Codex usage evidence packaging for scattered `/status`, reset-table, usage-limit, token-total, cached-input, and orchestration-overhead snippets
38
38
  - Codex usage receipts that separate backend quota-window percentages, local token totals, and overhead signals such as background polling, compaction loops, retry/tool loops, subagent fan-out, or idle drain
39
+ - Codex undo/rewind support workflows where maintainers need a local pre-agent workspace checkpoint with git diffs plus copied changed/untracked files before agent edits
39
40
  - Codex resource leaks and runaway local processes such as high CPU/GPU, `Code Helper`, `Codex Helper Renderer`, orphaned shell snapshots, log floods, thinking animation GPU loops, and non-Git workspace CPU loops
40
41
  - Codex quota and usage-limit mismatches where `/status` or the usage page shows remaining quota, accounts share limits unexpectedly, or 5h and weekly quotas move together
41
42
  - sensitive-file access in traces, including `.env`, private keys, package auth files, cloud credentials, local databases, and production secret manifests entering agent context
@@ -89,6 +90,7 @@ npx trace-to-skill config-audit ~/.codex --format json
89
90
  npx trace-to-skill plugin-audit ~/.codex --app /Applications/Codex.app --format json
90
91
  npx trace-to-skill diagnostics-bundle ~/.codex --output codex-diagnostics
91
92
  npx trace-to-skill usage-evidence ./usage-notes.md --output usage-evidence.md
93
+ npx trace-to-skill checkpoint . --output .trace-to-skill/checkpoints/before-codex
92
94
  npx trace-to-skill redact ./runs --output redacted-runs
93
95
  npx trace-to-skill sensitive-audit . --format json
94
96
  npx trace-to-skill lsp-audit . --format json
@@ -104,7 +106,7 @@ npx trace-to-skill init --comment --sarif
104
106
  ## GitHub Action
105
107
 
106
108
  ```yaml
107
- - uses: grnbtqdbyx-create/trace-to-skill@v0.1.70
109
+ - uses: grnbtqdbyx-create/trace-to-skill@v0.1.72
108
110
  with:
109
111
  mode: all
110
112
  doctor-threshold: "85"
@@ -129,6 +131,7 @@ npx trace-to-skill init --comment --sarif
129
131
  - Plugin audit JSON schema: https://github.com/grnbtqdbyx-create/trace-to-skill/blob/main/schemas/plugin-audit-result.schema.json
130
132
  - Session audit JSON schema: https://github.com/grnbtqdbyx-create/trace-to-skill/blob/main/schemas/session-audit-result.schema.json
131
133
  - Usage evidence JSON schema: https://github.com/grnbtqdbyx-create/trace-to-skill/blob/main/schemas/usage-evidence-result.schema.json
134
+ - Workspace checkpoint JSON schema: https://github.com/grnbtqdbyx-create/trace-to-skill/blob/main/schemas/workspace-checkpoint-result.schema.json
132
135
 
133
136
  ## Search phrases this project should answer
134
137
 
@@ -157,6 +160,8 @@ npx trace-to-skill init --comment --sarif
157
160
  - Codex apply_patch Add File overwrites existing file
158
161
  - Codex patch guard for generated patches
159
162
  - trace-to-skill guard-patch Add File symlink
163
+ - Codex pre-agent workspace checkpoint
164
+ - Codex undo rewind checkpoint for untracked files
160
165
  - Codex config-audit for config.toml diagnostics
161
166
  - Codex diagnostics bundle for OpenAI support
162
167
  - privacy-preserving Codex support bundle logs_2.sqlite config.toml
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trace-to-skill",
3
- "version": "0.1.70",
3
+ "version": "0.1.72",
4
4
  "description": "Turn failed AI coding-agent runs into reusable AGENTS.md rules, SKILL.md files, and eval evidence.",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -41,7 +41,7 @@
41
41
  "build": "tsc -p tsconfig.json",
42
42
  "clean": "rm -rf dist coverage",
43
43
  "test": "npm run build && node --test dist/tests/*.test.js",
44
- "check": "npm run test && node dist/src/cli.js doctor . --format json > /tmp/trace-to-skill-doctor.json && node dist/src/cli.js lint-agents . --format json > /tmp/trace-to-skill-agents-lint.json && node dist/src/cli.js analyze fixtures --format json > /tmp/trace-to-skill-smoke.json && node dist/src/cli.js usage-evidence fixtures --format json > /tmp/trace-to-skill-usage-evidence.json && node dist/src/cli.js sensitive-audit . --format json > /tmp/trace-to-skill-sensitive-audit.json && node dist/src/cli.js lsp-audit . --format json > /tmp/trace-to-skill-lsp-audit.json && node dist/src/cli.js suggest fixtures --target agents-md > /tmp/trace-to-skill-suggest.md && node dist/src/cli.js demo --format json > /tmp/trace-to-skill-demo.json && node dist/src/cli.js benchmark --format json > /tmp/trace-to-skill-benchmark.json && node dist/src/cli.js scorecard . --format json > /tmp/trace-to-skill-scorecard.json && node dist/src/cli.js oss-brief . --format json > /tmp/trace-to-skill-oss-brief.json",
44
+ "check": "npm run test && node dist/src/cli.js doctor . --format json > /tmp/trace-to-skill-doctor.json && node dist/src/cli.js lint-agents . --format json > /tmp/trace-to-skill-agents-lint.json && node dist/src/cli.js analyze fixtures --format json > /tmp/trace-to-skill-smoke.json && node dist/src/cli.js usage-evidence fixtures --format json > /tmp/trace-to-skill-usage-evidence.json && node dist/src/cli.js checkpoint . --output /tmp/trace-to-skill-checkpoint --format json > /tmp/trace-to-skill-checkpoint.json && node dist/src/cli.js sensitive-audit . --format json > /tmp/trace-to-skill-sensitive-audit.json && node dist/src/cli.js lsp-audit . --format json > /tmp/trace-to-skill-lsp-audit.json && node dist/src/cli.js suggest fixtures --target agents-md > /tmp/trace-to-skill-suggest.md && node dist/src/cli.js demo --format json > /tmp/trace-to-skill-demo.json && node dist/src/cli.js benchmark --format json > /tmp/trace-to-skill-benchmark.json && node dist/src/cli.js scorecard . --format json > /tmp/trace-to-skill-scorecard.json && node dist/src/cli.js oss-brief . --format json > /tmp/trace-to-skill-oss-brief.json",
45
45
  "prepack": "npm run build",
46
46
  "prepare": "npm run build"
47
47
  },
@@ -125,7 +125,9 @@
125
125
  "codex-resume",
126
126
  "codex-session-audit",
127
127
  "codex-history",
128
+ "codex-history-map",
128
129
  "codex-session-index",
130
+ "codex-project-history",
129
131
  "codex-issue-report",
130
132
  "openai-triage",
131
133
  "openai-oss",
@@ -148,6 +150,10 @@
148
150
  "usage-receipt",
149
151
  "codex-usage-receipt",
150
152
  "token-receipt",
153
+ "codex-rewind",
154
+ "codex-undo",
155
+ "workspace-checkpoint",
156
+ "agent-checkpoint",
151
157
  "usage-limit",
152
158
  "sensitive-files",
153
159
  "codex-privacy",