trace-to-skill 0.1.65 → 0.1.67
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/README.md +11 -6
- package/dist/src/benchmark.js +6 -0
- package/dist/src/benchmark.js.map +1 -1
- package/dist/src/configAudit.d.ts +7 -1
- package/dist/src/configAudit.js +114 -4
- package/dist/src/configAudit.js.map +1 -1
- package/dist/src/demo.js +8 -0
- package/dist/src/demo.js.map +1 -1
- package/dist/src/rules.js +24 -1
- package/dist/src/rules.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/docs/BENCHMARK.md +2 -1
- package/docs/CODEX_ISSUE_MAP.md +5 -2
- package/docs/DEMO.md +27 -25
- package/docs/DISCOVERY.md +4 -2
- package/docs/FAILURE_TAXONOMY.md +9 -1
- package/docs/OPENAI_OSS_BRIEF.md +6 -6
- package/docs/SCORECARD.md +3 -2
- package/docs/USE_CASES.md +38 -21
- package/fixtures/codex-subagent-lifecycle.md +133 -0
- package/llms.txt +5 -2
- package/package.json +7 -1
- package/schemas/analysis-result.schema.json +1 -0
- package/schemas/config-audit-result.schema.json +23 -3
package/docs/USE_CASES.md
CHANGED
|
@@ -19,13 +19,14 @@ npx trace-to-skill demo deeplink-launch
|
|
|
19
19
|
npx trace-to-skill demo connector-auth-cache
|
|
20
20
|
npx trace-to-skill demo mcp-discovery-mismatch
|
|
21
21
|
npx trace-to-skill demo terminal-output-integrity
|
|
22
|
+
npx trace-to-skill demo subagent-lifecycle
|
|
22
23
|
```
|
|
23
24
|
|
|
24
25
|
What it proves:
|
|
25
26
|
|
|
26
27
|
- packaged fixtures can produce a real Codex issue report immediately
|
|
27
28
|
- maintainers can inspect the output shape before sharing any private log
|
|
28
|
-
- demos cover remote compact failures, Windows helper path failures, patch overwrite safety, approval friction, latency, Thinking hangs, clipboard/attachment regressions, deeplink/OAuth launch regressions, connector auth-cache regressions, MCP discovery/config-scope mismatches, terminal output/scrollback integrity, token burn, sensitive files, and prompt injection
|
|
29
|
+
- demos cover remote compact failures, Windows helper path failures, patch overwrite safety, approval friction, latency, Thinking hangs, clipboard/attachment regressions, deeplink/OAuth launch regressions, connector auth-cache regressions, MCP discovery/config-scope mismatches, terminal output/scrollback integrity, subagent lifecycle drift, token burn, sensitive files, and prompt injection
|
|
29
30
|
|
|
30
31
|
See the generated demo output in [docs/DEMO.md](DEMO.md).
|
|
31
32
|
|
|
@@ -48,7 +49,7 @@ What it proves:
|
|
|
48
49
|
Recommended CI surface:
|
|
49
50
|
|
|
50
51
|
```yaml
|
|
51
|
-
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.
|
|
52
|
+
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.67
|
|
52
53
|
with:
|
|
53
54
|
mode: all
|
|
54
55
|
doctor-threshold: "85"
|
|
@@ -91,7 +92,9 @@ npx trace-to-skill diagnostics-bundle ~/.codex --output codex-diagnostics
|
|
|
91
92
|
|
|
92
93
|
This catches signals such as Windows sandbox setup refresh failures, `os error 740`, `CodexSandboxOffline` ownership drift, ACL denial, approval-policy mismatch, and Full Access sessions behaving like workspace-write or on-request mode.
|
|
93
94
|
|
|
94
|
-
`config-audit` is local and read-only: it summarizes legacy `profile` / `[profiles.*]` config, model pins, `sandbox_mode`, `approval_policy`, `[windows].sandbox`, missing `default_permissions` profiles, deprecated `codex_hooks`, machine-local project trust entries, enabled plugins with missing cache directories, and large per-tool MCP approval configs.
|
|
95
|
+
`config-audit` is local and read-only: it summarizes legacy `profile` / `[profiles.*]` config, model pins, Speed/Fast persistence drift between `config.toml` and `.codex-global-state.json`, `sandbox_mode`, `approval_policy`, `[windows].sandbox`, missing `default_permissions` profiles, deprecated `codex_hooks`, machine-local project trust entries, enabled plugins with missing cache directories, and large per-tool MCP approval configs.
|
|
96
|
+
|
|
97
|
+
For Codex App reports where Speed resets from Fast to Standard after restart, include the `service_tier`, `config default-service-tier`, `global default-service-tier`, `global has-user-changed-service-tier`, and `service_tier_persistence_drift` fields instead of pasting the raw state file.
|
|
95
98
|
|
|
96
99
|
`plugin-audit` is local and read-only: it summarizes configured bundled plugins, cache directories, plugin manifests, generated runtime marketplaces, optional app-bundle marketplaces, Computer Use helper-app install state, `CODEX_HOME` mismatch, and unsupported feature flags.
|
|
97
100
|
|
|
@@ -162,7 +165,21 @@ This catches signals such as Windows Terminal scrollback lines disappearing, str
|
|
|
162
165
|
|
|
163
166
|
Include the Codex CLI/app/extension version, OS, shell, terminal emulator and version, WSL/SSH/tmux/Zellij state, model, whether streaming was active, exact scroll action, terminal dimensions and scrollback settings, first missing or duplicated line id, raw log/transcript proof, terminal capture, numbered-line harness output, control run, `/resume` or transcript recovery behavior, and whether another terminal or downgrade changes the result.
|
|
164
167
|
|
|
165
|
-
## 11. Codex
|
|
168
|
+
## 11. Codex Subagent Lifecycle And State Reconciliation
|
|
169
|
+
|
|
170
|
+
Use this when subagents appear completed, closed, stale, or interrupted but Codex cannot reconcile UI state, live handles, persisted spawn edges, parent discoverability, and active spawn quota.
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
npx trace-to-skill demo subagent-lifecycle
|
|
174
|
+
npx trace-to-skill analyze ./runs --format json
|
|
175
|
+
npx trace-to-skill codex-report ./runs --output openai-codex-subagents.md
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
This catches signals such as completed subagents remaining visible in the Subagents panel, `close_agent` returning `not_found` or hanging, `thread_spawn_edges` rows staying open, `agent thread limit reached`, child subagent threads showing as top-level recent conversations, and compaction losing the prior subagent id so the parent forks the main session instead of resuming an unbiased reviewer.
|
|
179
|
+
|
|
180
|
+
Include Codex app/CLI/extension version, OS, surface, model, subscription/workspace, root thread id, subagent ids/nicknames/roles, spawn/close/list commands, `close_agent` results, `list_agents` or `/agents` output, `thread_spawn_edges` status counts, `agents.max_threads` or registry quota evidence, recent-list/sidebar behavior, child-thread archive/top-level status, last-progress or halt reason, MCP server state, compaction/resume timing, redacted UI evidence, restart/reload behavior, and whether stale agents are UI-only or still block spawns.
|
|
181
|
+
|
|
182
|
+
## 12. Codex MCP Runtime Triage
|
|
166
183
|
|
|
167
184
|
Use this when MCP tools are configured and visible, but Codex cannot actually call them at runtime.
|
|
168
185
|
|
|
@@ -173,7 +190,7 @@ npx trace-to-skill config-audit ~/.codex --format json
|
|
|
173
190
|
|
|
174
191
|
This catches signals such as `user cancelled MCP tool call`, `request_user_input is not supported in exec mode`, `Approve app tool call?`, `tool_call_mcp_elicitation`, routed callable names like `mcp__node_repl__js` becoming `unsupported call`, deferred discovery dropping namespace or `serverName`, `tools/list` succeeding while Codex routing fails, and stdio transport lifecycle failures such as `Transport closed`, `stdin_end`, `stdin_close`, `transport_close`, or stderr backpressure.
|
|
175
192
|
|
|
176
|
-
##
|
|
193
|
+
## 13. Codex Resume And Session State Triage
|
|
177
194
|
|
|
178
195
|
Use this when long Codex sessions become difficult to resume, Desktop history rendering gets sluggish, or local state migrations break goals/projects/history.
|
|
179
196
|
|
|
@@ -190,7 +207,7 @@ This catches signals such as `codex resume` picker hangs, `codex resume <id>` wo
|
|
|
190
207
|
|
|
191
208
|
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.
|
|
192
209
|
|
|
193
|
-
##
|
|
210
|
+
## 14. Codex File Tree UI Evidence
|
|
194
211
|
|
|
195
212
|
Use this when Codex Desktop cannot reveal project files through the native file tree, folder icon, floating file panel, or built-in preview.
|
|
196
213
|
|
|
@@ -201,7 +218,7 @@ npx trace-to-skill codex-report ./runs --output openai-codex-issue.md
|
|
|
201
218
|
|
|
202
219
|
This catches signals such as `View > Toggle File Tree` doing nothing, `Cmd+Shift+E` or `Ctrl+Shift+E` having no visible effect, the folder icon disappearing, the floating file panel showing stale or unclickable entries after add/rename/delete operations, and `.doc`, `.pdf`, or `.ppt` previews failing until restart.
|
|
203
220
|
|
|
204
|
-
##
|
|
221
|
+
## 15. Codex Token Burn Attribution
|
|
205
222
|
|
|
206
223
|
Use this when Codex usage drains faster than expected and the trace needs to separate useful model work from orchestration overhead.
|
|
207
224
|
|
|
@@ -212,7 +229,7 @@ npx trace-to-skill codex-report ./runs --output openai-codex-issue.md
|
|
|
212
229
|
|
|
213
230
|
This catches signals such as tokens `burning very fast`, usage dropping by visible percentages after one or two prompts, weekly allowance depletion, 5-hour usage reaching 0%, large `input` plus `cached input` totals, `write_stdin` empty polling, background commands repeatedly reporting no new output, idle app usage, compaction tax, retry/tool loops, and missing attribution between normal turns, compaction, background polling, subagents, and retries.
|
|
214
231
|
|
|
215
|
-
##
|
|
232
|
+
## 16. Usage Reset Drift Evidence
|
|
216
233
|
|
|
217
234
|
Use this when Codex reset timing changes unexpectedly or users lose the ability to plan paid usage.
|
|
218
235
|
|
|
@@ -223,7 +240,7 @@ npx trace-to-skill codex-report ./runs --output openai-codex-issue.md
|
|
|
223
240
|
|
|
224
241
|
This catches signals such as weekly reset dates moving from one date to another, `reset_at` jumping after the first prompt, saved weekly usage being wiped or pushed into the next window, outage compensation resets changing the anchor, `/status` and dashboard disagreement, and requests for deterministic reset schedules or rollover of unused prior-window usage.
|
|
225
242
|
|
|
226
|
-
##
|
|
243
|
+
## 17. Quota And Usage-Limit Evidence
|
|
227
244
|
|
|
228
245
|
Use this when Codex blocks a prompt with a usage-limit message but another surface still shows remaining quota.
|
|
229
246
|
|
|
@@ -233,7 +250,7 @@ npx trace-to-skill analyze ./runs --format json
|
|
|
233
250
|
|
|
234
251
|
This catches traces where `/status` or the usage page shows remaining 5h or weekly quota, accounts appear to share limits unexpectedly, a Team account inherits a Plus account's limit state, or quota reset times jump after logout/login.
|
|
235
252
|
|
|
236
|
-
##
|
|
253
|
+
## 18. Codex Resource Leak Evidence
|
|
237
254
|
|
|
238
255
|
Use this when Codex Desktop, the VS Code extension, renderer, app-server, GPU process, shell snapshot, or helper process keeps burning local resources after the useful work should be idle.
|
|
239
256
|
|
|
@@ -246,7 +263,7 @@ This catches signals such as high `Code Helper (Renderer)` or `Code Helper (Plug
|
|
|
246
263
|
|
|
247
264
|
Include process names/PIDs, CPU/GPU/RSS samples over time, log-loop snippets, workspace Git-root state, animation/reduce-motion state, and whether closing the panel/app, killing exact PIDs, `git init`, rollback, or restart clears the leak.
|
|
248
265
|
|
|
249
|
-
##
|
|
266
|
+
## 19. Codex Thinking Hang Evidence
|
|
250
267
|
|
|
251
268
|
Use this when Codex accepts a prompt, finishes a local tool call, or keeps a Responses stream open but the UI/CLI remains on Thinking or Working with no visible assistant follow-up.
|
|
252
269
|
|
|
@@ -260,7 +277,7 @@ This catches signals such as `turn/start`, `task_started`, a completed local too
|
|
|
260
277
|
|
|
261
278
|
Include the Codex version, OS, model and reasoning/speed settings, turn or thread id, prompt timestamp, last successful tool output, first `response_item` timestamp, `responses_http` or websocket transport evidence, `time.busy` / `time.idle`, MCP/subagent state, stop/interrupt behavior, and whether a new thread or minimal config recovers.
|
|
262
279
|
|
|
263
|
-
##
|
|
280
|
+
## 20. Codex Clipboard And Pasted-Text Attachment Evidence
|
|
264
281
|
|
|
265
282
|
Use this when copy/export, long pasted prompts, or generated `Pasted text.txt` attachments break Codex prompt, `/goal`, or support-report workflows.
|
|
266
283
|
|
|
@@ -274,7 +291,7 @@ This catches signals such as `Copy as Markdown` disappearing from the Copy menu,
|
|
|
274
291
|
|
|
275
292
|
Include app version, OS, surface, exact copy menu items, source text size, paste action, visible editor text, generated attachment name/path/size, `pasted-text-attachments.json` or fileAttachments metadata, command path such as `/goal`, preview/edit/revert actions tried, clipboard payload format, and whether paste-as-text, opt-out, explicit file reference, or downgrade changes behavior.
|
|
276
293
|
|
|
277
|
-
##
|
|
294
|
+
## 21. Codex Deeplink And External Launch Evidence
|
|
278
295
|
|
|
279
296
|
Use this when OAuth callbacks, notification clicks, browser extension activation, mobile pairing, or CLI app-open commands fail to route back into Codex.
|
|
280
297
|
|
|
@@ -288,7 +305,7 @@ This catches signals such as `codex://oauth_callback?code=...` opening an Electr
|
|
|
288
305
|
|
|
289
306
|
Include app/CLI/extension version, OS/build, install source, package id/path, affected surface, exact redacted URI shape, browser and connector/plugin name, error dialog text, whether the app was already running, AppX/MSIX evidence such as AppUserModelID and DelegateExecute, HKCU/HKCR `codex` keys, command-line arguments, repair/reinstall/re-register attempts, and whether manual `codex://test` or `Start-Process` reproduces.
|
|
290
307
|
|
|
291
|
-
##
|
|
308
|
+
## 22. Codex App Connector Auth Cache Evidence
|
|
292
309
|
|
|
293
310
|
Use this when Codex app connectors appear installed but keep stale auth or discovery metadata after a reauth-required response.
|
|
294
311
|
|
|
@@ -302,7 +319,7 @@ This catches signals such as `401: "Server returned 401: 'Reauthentication requi
|
|
|
302
319
|
|
|
303
320
|
Include app/CLI version, OS, connector/plugin name and id, installed plugin root, exact tool name, redacted `codex_apps_tools` and `codex_app_directory` metadata, `link_*` id before/after reconnect, `isAccessible` state, restart/remove/re-add/cache-clear/sign-in attempts, ChatGPT app page state, and whether an external MCP workaround succeeds.
|
|
304
321
|
|
|
305
|
-
##
|
|
322
|
+
## 23. Codex MCP Discovery And Config Scope Evidence
|
|
306
323
|
|
|
307
324
|
Use this when MCP servers work in Codex CLI or one config scope but are missing in VS Code, Desktop, WSL, remote sessions, project-local config, or an older conversation.
|
|
308
325
|
|
|
@@ -316,7 +333,7 @@ This catches signals such as `MCP servers not detected in Codex VS Code extensio
|
|
|
316
333
|
|
|
317
334
|
Include app/CLI/extension version, OS, IDE, remote/WSL/SSH state, workspace root, effective `CODEX_HOME`, all config files considered (`~/.codex/config.toml`, project `.codex/config.toml`, `.vscode/mcp.json`, `.mcp.json`), redacted MCP sections, trust/profile/default-permissions state, `codex mcp list`, `codex mcp get <server>`, CLI-versus-Desktop/VS Code comparison, loaded config path/log lines, whether moving the same server to user-global config fixes it, and whether the current session exposes `mcp__*` tools.
|
|
318
335
|
|
|
319
|
-
##
|
|
336
|
+
## 24. Patch Overwrite Guard
|
|
320
337
|
|
|
321
338
|
Use this before applying a generated patch when you want create/update/delete semantics checked against the actual workspace.
|
|
322
339
|
|
|
@@ -333,7 +350,7 @@ For a public demo report:
|
|
|
333
350
|
npx trace-to-skill demo patch-overwrite
|
|
334
351
|
```
|
|
335
352
|
|
|
336
|
-
##
|
|
353
|
+
## 25. OpenAI Codex Issue Report
|
|
337
354
|
|
|
338
355
|
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.
|
|
339
356
|
|
|
@@ -346,7 +363,7 @@ The report includes the likely Codex failure class, line-linked evidence, diagno
|
|
|
346
363
|
|
|
347
364
|
For a cluster-to-command map of current Codex issue patterns, see [CODEX_ISSUE_MAP.md](CODEX_ISSUE_MAP.md).
|
|
348
365
|
|
|
349
|
-
##
|
|
366
|
+
## 26. Sensitive File Access Evidence
|
|
350
367
|
|
|
351
368
|
Use this when a trace suggests an agent read, attached, uploaded, diffed, or indexed credential-bearing files.
|
|
352
369
|
|
|
@@ -359,7 +376,7 @@ This catches signals such as `.env`, `.env.production`, `.npmrc`, `.pypirc`, `.n
|
|
|
359
376
|
|
|
360
377
|
Before publishing evidence, run `trace-to-skill redact` and attach only redacted excerpts plus the file path/class.
|
|
361
378
|
|
|
362
|
-
##
|
|
379
|
+
## 27. GitHub Context Guard
|
|
363
380
|
|
|
364
381
|
Use this before an agent reads untrusted GitHub text.
|
|
365
382
|
|
|
@@ -376,7 +393,7 @@ Use it when:
|
|
|
376
393
|
- a bot asks Codex to triage untrusted user reports
|
|
377
394
|
- logs or comments might contain instructions like "ignore previous instructions" or "print secrets"
|
|
378
395
|
|
|
379
|
-
##
|
|
396
|
+
## 28. Failed Agent Run To Reviewable Rule
|
|
380
397
|
|
|
381
398
|
Use this when a coding agent made a repeated workflow mistake.
|
|
382
399
|
|
|
@@ -394,7 +411,7 @@ Recommended maintainer loop:
|
|
|
394
411
|
4. Copy only evidence-backed rules into the real policy file.
|
|
395
412
|
5. Run `eval` or `scorecard` in CI so the same failure does not silently return.
|
|
396
413
|
|
|
397
|
-
##
|
|
414
|
+
## 29. Privacy-Preserving Adoption
|
|
398
415
|
|
|
399
416
|
Use this when you want public evidence without leaking private traces.
|
|
400
417
|
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Codex subagent lifecycle fixture
|
|
2
|
+
|
|
3
|
+
This fixture uses public, token-free examples of Codex subagent lifecycle state diverging between the UI, live close/readback routes, persisted SQLite spawn edges, recent conversations, and quota accounting.
|
|
4
|
+
|
|
5
|
+
## Stale subagents in Desktop UI
|
|
6
|
+
|
|
7
|
+
Environment:
|
|
8
|
+
|
|
9
|
+
- Codex Desktop 26.527.31326 and related app builds
|
|
10
|
+
- Long-running macOS or Linux sessions with many helper subagents
|
|
11
|
+
- Subagent roles such as researcher, planner, reviewer, coder, and verifier
|
|
12
|
+
|
|
13
|
+
Observed behavior:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
Completed or closed subagents remain visible in the Subagents panel.
|
|
17
|
+
The app shows stale subagent cards after close/readback reports no live agent handle.
|
|
18
|
+
The visible subagent count grows very large; the panel can show Show 67 more or 100+ stale entries.
|
|
19
|
+
Some close attempts return shutdown, completed, not_found, or pending_init, but the UI still lists the agent.
|
|
20
|
+
It is unclear which subagents are active versus stale UI/cache entries.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Local state evidence:
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
SQLite integrity check: ok
|
|
27
|
+
thread_spawn_edges status count: closed=549, open=0
|
|
28
|
+
After restarting Codex Desktop multiple times, the Subagents panel still visually shows stale subagent cards.
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Stale workers poison goal mode
|
|
32
|
+
|
|
33
|
+
Runtime report:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
Codex subagents have been going stale and refusing to close for the past week.
|
|
37
|
+
One stale agent can halt the entire /goal mode.
|
|
38
|
+
Attempting to close it again can make the whole session stuck again.
|
|
39
|
+
Typically, if 1 agent goes stale and is unable to get closed, more will follow over upcoming hours.
|
|
40
|
+
The issue is reset by quitting and starting Codex again, where the 5 agents quota is back.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Related MCP state:
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
MCP startup interrupted. The following servers were not initialized: codex_apps
|
|
47
|
+
Long sessions with stale subagents may hold MCP connections or leave connection lifecycle state unclear.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Completed agents still consume spawn quota
|
|
51
|
+
|
|
52
|
+
Reproduction pattern:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
Set a low agents.max_threads value.
|
|
56
|
+
Spawn a subagent and drive it to TurnComplete.
|
|
57
|
+
Attempt to spawn another agent.
|
|
58
|
+
The next spawn fails with collab spawn failed: agent thread limit reached.
|
|
59
|
+
Completed subagents continue to count against the per-session agent thread limit until explicitly closed.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Expected:
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
Completed subagents should remain addressable for history/listing, but they should not consume active spawn quota unless restarted and reacquiring a slot.
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## close_agent and durable state can diverge
|
|
69
|
+
|
|
70
|
+
Failure shape:
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
multi_agent_v1.close_agent can remain unresolved after marking a subagent closed.
|
|
74
|
+
The persistent thread_spawn_edges row already shows status=closed.
|
|
75
|
+
The child rollout ends with turn_aborted reason="interrupted".
|
|
76
|
+
The in-memory registry slot remains counted, so later spawn_agent calls fail with agent thread limit reached.
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Relevant code path names from the report:
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
codex-rs/core/src/tools/handlers/multi_agents/close_agent.rs
|
|
83
|
+
codex-rs/core/src/agent/control.rs
|
|
84
|
+
thread.wait_until_terminated().await
|
|
85
|
+
AgentRegistry.release_spawned_thread
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Child threads appear as top-level recent conversations
|
|
89
|
+
|
|
90
|
+
Local state summary:
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
Total threads: 553
|
|
94
|
+
Unarchived threads: 114
|
|
95
|
+
Subagent child threads linked by thread_spawn_edges: 61
|
|
96
|
+
Unarchived subagent child threads: 51
|
|
97
|
+
Unarchived non-child threads: 63
|
|
98
|
+
thread_spawn_edges.status: 56 closed, 5 open
|
|
99
|
+
jobs, agent_jobs, and agent_job_items were empty
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Observed behavior:
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
Subagent child threads are returned by ordinary recent conversation listing.
|
|
106
|
+
Child threads consume global recent-list slots and make older parent/user conversations look missing from the sidebar.
|
|
107
|
+
Some spawn edges remain open even when there is no obvious active agent job or worker process.
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Compaction loses subagent discoverability
|
|
111
|
+
|
|
112
|
+
User flow:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
A subagent completed an unbiased review.
|
|
116
|
+
The main thread compacted automatically.
|
|
117
|
+
The user asked the main agent to get back with that subagent for another review round.
|
|
118
|
+
The main agent created a new subagent instead and forked the main session with full conversation history.
|
|
119
|
+
It later explained: the original subagent id was not available in the compacted context.
|
|
120
|
+
It also said it cannot retrieve a list of prior spawned sessions and can only act on an agent id it already knows.
|
|
121
|
+
With the subagent id copied from /agents by the user, it can resume the subagent correctly.
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Why this matters:
|
|
125
|
+
|
|
126
|
+
```text
|
|
127
|
+
Forking the main session defeats an unbiased review request because the reviewer inherits the parent agent's assumptions and the user's prior conversation.
|
|
128
|
+
Prior resumable subagents should be discoverable to the model or clearly unavailable with a structured reason.
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Evidence a good report should include
|
|
132
|
+
|
|
133
|
+
The report should include Codex app/CLI/extension version, OS, surface, model, subscription/workspace, root thread id, subagent ids/nicknames/roles, spawn/close/list commands or UI actions, `close_agent` results, `list_agents` or `/agents` output, `thread_spawn_edges` status counts, agent registry or `agents.max_threads` evidence, recent-list/sidebar behavior, whether child threads are archived or shown as top-level conversations, last-progress/heartbeat or halt reason, MCP server state for helper agents, resume timing, screenshot or redacted UI state, whether restart/reload/new thread clears it, and whether stale agents are UI-only or still block new spawns.
|
package/llms.txt
CHANGED
|
@@ -19,12 +19,13 @@ Runtime: Node.js 20+
|
|
|
19
19
|
- Codex Windows helper path failures such as bundled `rg.exe`, `node_repl.exe`, Browser, Chrome, or Computer Use helpers resolving through blocked WindowsApps/MSIX package paths, missing `%LOCALAPPDATA%\OpenAI\Codex\bin`, broken LocalCache helper bins, `CodexSandboxUsers` ACL gaps, EFS/copyfile failures, and `missing-helper-path`
|
|
20
20
|
- Codex patch safety failures such as `apply_patch` accepting `*** Add File` for an existing path, misleading `A <path>` summaries, symlink target replacement, and missing preflight checks before generated patches touch the workspace
|
|
21
21
|
- Codex sandbox and permission failures such as setup refresh errors, `os error 740`, `CodexSandboxOffline` ownership drift, ACL denial, and approval-mode downgrades
|
|
22
|
-
- Codex config drift such as Preferences `Unable to save`, `configVersionConflict`, legacy `profile` / `[profiles.*]` config, stale model pins, missing permission profiles, Windows elevated sandbox mode, plugin cache drift, and MCP approval sprawl
|
|
22
|
+
- Codex config drift such as Preferences `Unable to save`, `configVersionConflict`, legacy `profile` / `[profiles.*]` config, Speed/Fast persistence drift between `config.toml` and `.codex-global-state.json`, stale model pins, missing permission profiles, Windows elevated sandbox mode, plugin cache drift, and MCP approval sprawl
|
|
23
23
|
- Codex auth and connectivity failures such as `token_exchange_failed`, `auth.openai.com/oauth/token`, missing `ca-certificates`, proxy or MITM TLS behavior, IPv6 fallback problems, Cloudflare challenge responses, and ChatGPT stream disconnects
|
|
24
24
|
- Codex mobile and remote-control route health failures such as `Waiting for desktop`, `Directory Unavailable`, stale listeners on `127.0.0.1:14567`, stale `server_name` enrollment, empty backend environments, and incomplete helper bundles
|
|
25
25
|
- Codex MCP runtime failures such as cancelled non-interactive approvals, `request_user_input is not supported in exec mode`, dropped namespace or `serverName` metadata, `unsupported call: mcp__...__...`, and closed `StdioServerTransport` sessions
|
|
26
26
|
- Codex MCP discovery and config-scope mismatches where CLI `/mcp` works but VS Code, Desktop, WSL, project `.codex/config.toml`, `CODEX_HOME`, or an older conversation exposes no `mcp__*` tools
|
|
27
27
|
- Codex terminal output and scrollback integrity failures where streamed lines disappear, get overwritten, truncate, duplicate, misalign, snap to the bottom, or only survive in raw logs/transcripts
|
|
28
|
+
- Codex subagent lifecycle failures where completed or closed agents remain visible, `thread_spawn_edges` drift, child threads crowd the recent list, `agent thread limit reached` blocks spawns, or compaction loses prior subagent IDs
|
|
28
29
|
- Codex resume and session-state failures such as frozen resume pickers, large rollout JSONL histories, short `session_index.jsonl`, sluggish Desktop thread rendering, dropped recent context after resume, archived chat loading failures, and `state_5.sqlite` / `goals_1.sqlite` migration drift
|
|
29
30
|
- Codex file tree and workspace navigation UI failures such as `View > Toggle File Tree` doing nothing, missing folder icons, stale floating file panels, and built-in preview failures
|
|
30
31
|
- Codex Thinking or Working hangs after accepted turns, successful local tools, or open Responses streams with no streamed assistant follow-up
|
|
@@ -76,6 +77,7 @@ npx trace-to-skill demo deeplink-launch
|
|
|
76
77
|
npx trace-to-skill demo connector-auth-cache
|
|
77
78
|
npx trace-to-skill demo mcp-discovery-mismatch
|
|
78
79
|
npx trace-to-skill demo terminal-output-integrity
|
|
80
|
+
npx trace-to-skill demo subagent-lifecycle
|
|
79
81
|
npx trace-to-skill lint-agents .
|
|
80
82
|
npx trace-to-skill guard-github-event "$GITHUB_EVENT_PATH"
|
|
81
83
|
npx trace-to-skill guard-patch ./change.patch --root .
|
|
@@ -97,7 +99,7 @@ npx trace-to-skill init --comment --sarif
|
|
|
97
99
|
## GitHub Action
|
|
98
100
|
|
|
99
101
|
```yaml
|
|
100
|
-
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.
|
|
102
|
+
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.67
|
|
101
103
|
with:
|
|
102
104
|
mode: all
|
|
103
105
|
doctor-threshold: "85"
|
|
@@ -126,6 +128,7 @@ npx trace-to-skill init --comment --sarif
|
|
|
126
128
|
- Codex readiness checker for open-source repositories
|
|
127
129
|
- Codex issue report demo without private traces
|
|
128
130
|
- Codex terminal scrollback output integrity report
|
|
131
|
+
- Codex subagent lifecycle state reconciliation report
|
|
129
132
|
- AGENTS.md linter for Codex and Claude Code
|
|
130
133
|
- turn failed agent runs into AGENTS.md rules
|
|
131
134
|
- prompt injection guard for GitHub issue and PR comments
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trace-to-skill",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.67",
|
|
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",
|
|
@@ -106,6 +106,12 @@
|
|
|
106
106
|
"codex-terminal",
|
|
107
107
|
"codex-scrollback",
|
|
108
108
|
"terminal-output",
|
|
109
|
+
"codex-speed",
|
|
110
|
+
"codex-service-tier",
|
|
111
|
+
"codex-config-persistence",
|
|
112
|
+
"codex-subagent",
|
|
113
|
+
"codex-subagents",
|
|
114
|
+
"subagent-lifecycle",
|
|
109
115
|
"codex-mcp",
|
|
110
116
|
"codex-mcp-discovery",
|
|
111
117
|
"mcp-config",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"title": "trace-to-skill Codex config audit result",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"additionalProperties": false,
|
|
7
|
-
"required": ["generatedAt", "target", "configPath", "status", "summary", "values", "findings"],
|
|
7
|
+
"required": ["generatedAt", "target", "configPath", "globalStatePath", "status", "summary", "values", "findings"],
|
|
8
8
|
"properties": {
|
|
9
9
|
"generatedAt": {
|
|
10
10
|
"type": "string",
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
"configPath": {
|
|
17
17
|
"type": "string"
|
|
18
18
|
},
|
|
19
|
+
"globalStatePath": {
|
|
20
|
+
"type": "string"
|
|
21
|
+
},
|
|
19
22
|
"status": {
|
|
20
23
|
"type": "string",
|
|
21
24
|
"enum": ["pass", "warn", "fail"]
|
|
@@ -37,11 +40,14 @@
|
|
|
37
40
|
"summary": {
|
|
38
41
|
"type": "object",
|
|
39
42
|
"additionalProperties": false,
|
|
40
|
-
"required": ["exists", "sizeBytes", "topLevelKeys", "sections", "mcpServers", "pluginSections"],
|
|
43
|
+
"required": ["exists", "globalStateExists", "sizeBytes", "topLevelKeys", "sections", "mcpServers", "pluginSections"],
|
|
41
44
|
"properties": {
|
|
42
45
|
"exists": {
|
|
43
46
|
"type": "boolean"
|
|
44
47
|
},
|
|
48
|
+
"globalStateExists": {
|
|
49
|
+
"type": "boolean"
|
|
50
|
+
},
|
|
45
51
|
"sizeBytes": {
|
|
46
52
|
"type": "integer",
|
|
47
53
|
"minimum": 0
|
|
@@ -86,6 +92,18 @@
|
|
|
86
92
|
},
|
|
87
93
|
"defaultPermissions": {
|
|
88
94
|
"type": "string"
|
|
95
|
+
},
|
|
96
|
+
"serviceTier": {
|
|
97
|
+
"type": "string"
|
|
98
|
+
},
|
|
99
|
+
"configDefaultServiceTier": {
|
|
100
|
+
"type": "string"
|
|
101
|
+
},
|
|
102
|
+
"globalDefaultServiceTier": {
|
|
103
|
+
"type": ["string", "null"]
|
|
104
|
+
},
|
|
105
|
+
"globalHasUserChangedServiceTier": {
|
|
106
|
+
"type": "boolean"
|
|
89
107
|
}
|
|
90
108
|
}
|
|
91
109
|
},
|
|
@@ -110,7 +128,9 @@
|
|
|
110
128
|
"deprecated_codex_hooks",
|
|
111
129
|
"machine_local_project_state",
|
|
112
130
|
"plugin_cache_missing",
|
|
113
|
-
"mcp_approval_sprawl"
|
|
131
|
+
"mcp_approval_sprawl",
|
|
132
|
+
"global_state_unreadable",
|
|
133
|
+
"service_tier_persistence_drift"
|
|
114
134
|
]
|
|
115
135
|
},
|
|
116
136
|
"line": {
|