mcp-codex-worker 0.1.27 → 0.1.29

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/src/app.d.ts CHANGED
@@ -10,6 +10,7 @@ export declare class CodexWorkerApp {
10
10
  private readonly runtime;
11
11
  private taskManager;
12
12
  private registry;
13
+ private fileWriter;
13
14
  private evictionInterval?;
14
15
  initialize(): Promise<void>;
15
16
  getTaskManager(): TaskManager;
package/dist/src/app.js CHANGED
@@ -13,16 +13,27 @@ import { computePollFrequency } from './mcp/sep1686-handlers.js';
13
13
  import { renderScoreboard, renderTaskDetail, renderSummaryLog, renderVerboseLog, } from './mcp/resource-renderers.js';
14
14
  import { validateResponseAgainstCapabilities } from './execution/provider-capabilities.js';
15
15
  import { parseReasoning } from './services/reasoning-options.js';
16
+ // Persistence utilities — re-exported for external use; not called directly in this module.
17
+ import { applyRecovery } from './task/task-persistence.js';
16
18
  export class CodexWorkerApp {
17
19
  runtime = new CodexRuntime();
18
20
  taskManager;
19
21
  registry;
22
+ fileWriter;
20
23
  evictionInterval;
21
24
  async initialize() {
22
25
  // Create TaskManager with persistence
23
26
  const persistenceRoot = join(homedir(), '.mcp-codex-worker', 'tasks');
24
- const fileWriter = new TaskFileWriter(persistenceRoot);
25
- this.taskManager = new TaskManager({ persistenceRoot, fileWriter });
27
+ this.fileWriter = new TaskFileWriter(persistenceRoot);
28
+ this.taskManager = new TaskManager({ persistenceRoot, fileWriter: this.fileWriter });
29
+ // Restore persisted tasks from disk (crash recovery)
30
+ const persistedIds = await this.fileWriter.listPersistedTaskIds();
31
+ for (const taskId of persistedIds) {
32
+ const meta = await this.fileWriter.readMeta(taskId);
33
+ if (meta) {
34
+ this.taskManager.restoreTask(applyRecovery(meta, true));
35
+ }
36
+ }
26
37
  // Start eviction sweep for terminal tasks
27
38
  this.evictionInterval = setInterval(() => {
28
39
  this.taskManager.evictExpired();
@@ -98,6 +109,11 @@ export class CodexWorkerApp {
98
109
  const taskVerboseLogMatch = /^task:\/\/\/([^/]+)\/log\.verbose$/.exec(uri);
99
110
  if (taskVerboseLogMatch) {
100
111
  const taskId = decodeURIComponent(taskVerboseLogMatch[1]);
112
+ // Verbose log reads from disk (writeOutputFileOnly goes to disk, not ring buffer)
113
+ const content = await this.fileWriter.readVerboseLog(taskId);
114
+ if (content !== null) {
115
+ return { mimeType: 'text/plain', text: `# Verbose Log: ${taskId}\n\n${content}` };
116
+ }
101
117
  const task = this.taskManager.getTask(taskId);
102
118
  if (!task) {
103
119
  return { mimeType: 'text/plain', text: `Task not found: ${taskId}` };
@@ -108,10 +124,15 @@ export class CodexWorkerApp {
108
124
  if (taskSummaryLogMatch) {
109
125
  const taskId = decodeURIComponent(taskSummaryLogMatch[1]);
110
126
  const task = this.taskManager.getTask(taskId);
111
- if (!task) {
112
- return { mimeType: 'text/plain', text: `Task not found: ${taskId}` };
127
+ if (task) {
128
+ return { mimeType: 'text/plain', text: renderSummaryLog(task) };
113
129
  }
114
- return { mimeType: 'text/plain', text: renderSummaryLog(task) };
130
+ // Fallback: read from disk (task may have been evicted)
131
+ const content = await this.fileWriter.readSummaryLog(taskId);
132
+ if (content !== null) {
133
+ return { mimeType: 'text/plain', text: `# Log: ${taskId} (from disk)\n\n${content}` };
134
+ }
135
+ return { mimeType: 'text/plain', text: `Task not found: ${taskId}` };
115
136
  }
116
137
  const taskDetailMatch = /^task:\/\/\/([^/]+)$/.exec(uri);
117
138
  if (taskDetailMatch) {
@@ -120,7 +141,11 @@ export class CodexWorkerApp {
120
141
  if (taskId === '{id}') {
121
142
  return { mimeType: 'text/markdown', text: 'Provide a real task ID in place of {id}.' };
122
143
  }
123
- const task = this.taskManager.getTask(taskId);
144
+ let task = this.taskManager.getTask(taskId);
145
+ if (!task) {
146
+ // Fallback: read from disk (task may have been evicted)
147
+ task = await this.fileWriter.readMeta(taskId) ?? undefined;
148
+ }
124
149
  if (!task) {
125
150
  return { mimeType: 'text/markdown', text: `Task not found: ${taskId}` };
126
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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"}
@@ -86,10 +86,9 @@ export function attachEventCapture(client, handle, threadId) {
86
86
  const duration = durationMs !== undefined ? (durationMs / 1000).toFixed(1) + 's' : '';
87
87
  handle.writeOutput(`[${ts()}] cmd: ${command} (exit ${exitCode ?? '?'}${duration ? ', ' + duration : ''})`);
88
88
  if (itemId) {
89
- const accumulated = commandOutputBuffers.get(itemId);
90
- if (accumulated) {
91
- handle.writeOutputFileOnly(`[${ts()}] === command output: ${command} ===\n${accumulated}`);
92
- }
89
+ // Deltas were already streamed to verbose in real-time.
90
+ // Write only a completion marker to avoid duplicating output.
91
+ handle.writeOutputFileOnly(`[${ts()}] === command completed: ${command} (exit ${exitCode ?? '?'}${duration ? ', ' + duration : ''}) ===`);
93
92
  commandOutputBuffers.delete(itemId);
94
93
  }
95
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codex-event-capture.js","sourceRoot":"","sources":["../../../src/execution/codex-event-capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-event-capture.js","sourceRoot":"","sources":["../../../src/execution/codex-event-capture.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -62,7 +62,7 @@ async function main() {
62
62
  subscriptions.subscribe('task:///all');
63
63
  const taskManager = app.getTaskManager();
64
64
  // --- Task creation: new resource URIs appear ---
65
- taskManager.onTaskCreate((task) => {
65
+ taskManager.onTaskCreate(() => {
66
66
  // Tell clients the resource list changed (new task:///<id> URIs)
67
67
  server.sendResourceListChanged().catch(() => { });
68
68
  // Also notify the scoreboard since a new entry appeared
@@ -74,10 +74,6 @@ async function main() {
74
74
  for (const uri of uris) {
75
75
  server.sendResourceUpdated({ uri }).catch(() => { });
76
76
  }
77
- // Scoreboard is always auto-subscribed, but ensure it's notified
78
- if (!uris.includes('task:///all')) {
79
- server.sendResourceUpdated({ uri: 'task:///all' }).catch(() => { });
80
- }
81
77
  });
82
78
  // --- Output changes: new agent messages, command output, diffs ---
83
79
  // Throttled: notify at most once per second per task to avoid flooding
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export class SubscriptionManager {
18
18
  if (uri === 'task:///all') {
19
19
  matches.push(uri);
20
20
  }
21
- else if (uri.startsWith(`task:///${taskId}`)) {
21
+ else if (uri === `task:///${taskId}` || uri.startsWith(`task:///${taskId}/`)) {
22
22
  matches.push(uri);
23
23
  }
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"subscription-manager.js","sourceRoot":"","sources":["../../../src/services/subscription-manager.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,mBAAmB;IACb,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE1C,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,wBAAwB,CAAC,MAAc;QACrC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"subscription-manager.js","sourceRoot":"","sources":["../../../src/services/subscription-manager.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,mBAAmB;IACb,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE1C,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,wBAAwB,CAAC,MAAc;QACrC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;iBAAM,IAAI,GAAG,KAAK,WAAW,MAAM,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -8,4 +8,12 @@ export declare class TaskFileWriter {
8
8
  writeMeta(task: TaskState): Promise<void>;
9
9
  appendSummary(taskId: string, line: string): Promise<void>;
10
10
  appendVerbose(taskId: string, line: string): Promise<void>;
11
+ /** Read a persisted task's meta.json. Returns null if missing or corrupt. */
12
+ readMeta(taskId: string): Promise<TaskState | null>;
13
+ /** Read a persisted task's verbose.log. Returns null if missing. */
14
+ readVerboseLog(taskId: string): Promise<string | null>;
15
+ /** Read a persisted task's summary.log. Returns null if missing. */
16
+ readSummaryLog(taskId: string): Promise<string | null>;
17
+ /** List all task IDs that have a persisted directory with meta.json. */
18
+ listPersistedTaskIds(): Promise<string[]>;
11
19
  }
@@ -1,4 +1,4 @@
1
- import { appendFile, mkdir, rename, writeFile } from 'node:fs/promises';
1
+ import { appendFile, mkdir, readFile, readdir, rename, writeFile } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  export class TaskFileWriter {
4
4
  root;
@@ -20,7 +20,7 @@ export class TaskFileWriter {
20
20
  async writeMeta(task) {
21
21
  const dir = await this.ensureDir(task.id);
22
22
  const target = join(dir, 'meta.json');
23
- const tmp = join(dir, `meta.json.tmp.${process.pid}`);
23
+ const tmp = join(dir, `meta.json.tmp.${process.pid}.${Date.now()}.${Math.random().toString(36).slice(2)}`);
24
24
  await writeFile(tmp, JSON.stringify(task, null, 2), 'utf8');
25
25
  await rename(tmp, target);
26
26
  }
@@ -32,5 +32,55 @@ export class TaskFileWriter {
32
32
  const dir = await this.ensureDir(taskId);
33
33
  await appendFile(join(dir, 'verbose.log'), line + '\n', 'utf8');
34
34
  }
35
+ /** Read a persisted task's meta.json. Returns null if missing or corrupt. */
36
+ async readMeta(taskId) {
37
+ try {
38
+ const raw = await readFile(join(this.taskDir(taskId), 'meta.json'), 'utf8');
39
+ return JSON.parse(raw);
40
+ }
41
+ catch {
42
+ return null;
43
+ }
44
+ }
45
+ /** Read a persisted task's verbose.log. Returns null if missing. */
46
+ async readVerboseLog(taskId) {
47
+ try {
48
+ return await readFile(join(this.taskDir(taskId), 'verbose.log'), 'utf8');
49
+ }
50
+ catch {
51
+ return null;
52
+ }
53
+ }
54
+ /** Read a persisted task's summary.log. Returns null if missing. */
55
+ async readSummaryLog(taskId) {
56
+ try {
57
+ return await readFile(join(this.taskDir(taskId), 'summary.log'), 'utf8');
58
+ }
59
+ catch {
60
+ return null;
61
+ }
62
+ }
63
+ /** List all task IDs that have a persisted directory with meta.json. */
64
+ async listPersistedTaskIds() {
65
+ try {
66
+ const entries = await readdir(this.root, { withFileTypes: true });
67
+ const ids = [];
68
+ for (const entry of entries) {
69
+ if (entry.isDirectory()) {
70
+ try {
71
+ await readFile(join(this.root, entry.name, 'meta.json'), 'utf8');
72
+ ids.push(entry.name);
73
+ }
74
+ catch {
75
+ // No meta.json — skip
76
+ }
77
+ }
78
+ }
79
+ return ids;
80
+ }
81
+ catch {
82
+ return [];
83
+ }
84
+ }
35
85
  }
36
86
  //# sourceMappingURL=task-file-writer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-file-writer.js","sourceRoot":"","sources":["../../../src/services/task-file-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,cAAc;IACR,IAAI,CAAS;IACb,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEjD,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEO,OAAO,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,MAAc;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAe;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,iBAAiB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACtD,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,IAAY;QAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,IAAY;QAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;CACF"}
1
+ {"version":3,"file":"task-file-writer.js","sourceRoot":"","sources":["../../../src/services/task-file-writer.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,11 @@ export declare class TaskManager {
51
51
  * the initial {@link TaskState}.
52
52
  */
53
53
  createTask(input: CreateTaskInput): TaskState;
54
+ /**
55
+ * Restore a previously persisted task into the store without generating
56
+ * a new ID or firing create listeners. Used during startup recovery.
57
+ */
58
+ restoreTask(task: TaskState): void;
54
59
  getTask(id: string): TaskState | undefined;
55
60
  getBySessionId(sessionId: string): TaskState | undefined;
56
61
  getHandle(id: string): TaskHandle | undefined;
@@ -78,6 +78,17 @@ export class TaskManager {
78
78
  }
79
79
  return task;
80
80
  }
81
+ /**
82
+ * Restore a previously persisted task into the store without generating
83
+ * a new ID or firing create listeners. Used during startup recovery.
84
+ */
85
+ restoreTask(task) {
86
+ if (this.store.get(task.id))
87
+ return; // already loaded
88
+ this.store.create(task);
89
+ const handle = createTaskHandle(this, task.id);
90
+ this.handles.set(task.id, handle);
91
+ }
81
92
  // -------------------------------------------------------------------------
82
93
  // Lookups
83
94
  // -------------------------------------------------------------------------
@@ -277,6 +288,8 @@ export class TaskManager {
277
288
  if (now - completedMs > keepAlive) {
278
289
  this.store.delete(task.id);
279
290
  this.handles.delete(task.id);
291
+ this.abortControllers.delete(task.id);
292
+ this.abortListeners.delete(task.id);
280
293
  count += 1;
281
294
  }
282
295
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task-manager.js","sourceRoot":"","sources":["../../../src/task/task-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-manager.js","sourceRoot":"","sources":["../../../src/task/task-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-codex-worker",
3
- "version": "0.1.27",
3
+ "version": "0.1.29",
4
4
  "description": "MCP server bridge for Codex app-server",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
package/src/app.ts CHANGED
@@ -42,13 +42,23 @@ export class CodexWorkerApp {
42
42
  private readonly runtime = new CodexRuntime();
43
43
  private taskManager!: TaskManager;
44
44
  private registry!: ProviderRegistry;
45
+ private fileWriter!: TaskFileWriter;
45
46
  private evictionInterval?: ReturnType<typeof setInterval>;
46
47
 
47
48
  async initialize(): Promise<void> {
48
49
  // Create TaskManager with persistence
49
50
  const persistenceRoot = join(homedir(), '.mcp-codex-worker', 'tasks');
50
- const fileWriter = new TaskFileWriter(persistenceRoot);
51
- this.taskManager = new TaskManager({ persistenceRoot, fileWriter });
51
+ this.fileWriter = new TaskFileWriter(persistenceRoot);
52
+ this.taskManager = new TaskManager({ persistenceRoot, fileWriter: this.fileWriter });
53
+
54
+ // Restore persisted tasks from disk (crash recovery)
55
+ const persistedIds = await this.fileWriter.listPersistedTaskIds();
56
+ for (const taskId of persistedIds) {
57
+ const meta = await this.fileWriter.readMeta(taskId);
58
+ if (meta) {
59
+ this.taskManager.restoreTask(applyRecovery(meta, true));
60
+ }
61
+ }
52
62
 
53
63
  // Start eviction sweep for terminal tasks
54
64
  this.evictionInterval = setInterval(() => {
@@ -142,6 +152,11 @@ export class CodexWorkerApp {
142
152
  const taskVerboseLogMatch = /^task:\/\/\/([^/]+)\/log\.verbose$/.exec(uri);
143
153
  if (taskVerboseLogMatch) {
144
154
  const taskId = decodeURIComponent(taskVerboseLogMatch[1]!);
155
+ // Verbose log reads from disk (writeOutputFileOnly goes to disk, not ring buffer)
156
+ const content = await this.fileWriter.readVerboseLog(taskId);
157
+ if (content !== null) {
158
+ return { mimeType: 'text/plain', text: `# Verbose Log: ${taskId}\n\n${content}` };
159
+ }
145
160
  const task = this.taskManager.getTask(taskId);
146
161
  if (!task) {
147
162
  return { mimeType: 'text/plain', text: `Task not found: ${taskId}` };
@@ -153,10 +168,15 @@ export class CodexWorkerApp {
153
168
  if (taskSummaryLogMatch) {
154
169
  const taskId = decodeURIComponent(taskSummaryLogMatch[1]!);
155
170
  const task = this.taskManager.getTask(taskId);
156
- if (!task) {
157
- return { mimeType: 'text/plain', text: `Task not found: ${taskId}` };
171
+ if (task) {
172
+ return { mimeType: 'text/plain', text: renderSummaryLog(task) };
158
173
  }
159
- return { mimeType: 'text/plain', text: renderSummaryLog(task) };
174
+ // Fallback: read from disk (task may have been evicted)
175
+ const content = await this.fileWriter.readSummaryLog(taskId);
176
+ if (content !== null) {
177
+ return { mimeType: 'text/plain', text: `# Log: ${taskId} (from disk)\n\n${content}` };
178
+ }
179
+ return { mimeType: 'text/plain', text: `Task not found: ${taskId}` };
160
180
  }
161
181
 
162
182
  const taskDetailMatch = /^task:\/\/\/([^/]+)$/.exec(uri);
@@ -166,7 +186,11 @@ export class CodexWorkerApp {
166
186
  if (taskId === '{id}') {
167
187
  return { mimeType: 'text/markdown', text: 'Provide a real task ID in place of {id}.' };
168
188
  }
169
- const task = this.taskManager.getTask(taskId);
189
+ let task = this.taskManager.getTask(taskId);
190
+ if (!task) {
191
+ // Fallback: read from disk (task may have been evicted)
192
+ task = await this.fileWriter.readMeta(taskId) ?? undefined;
193
+ }
170
194
  if (!task) {
171
195
  return { mimeType: 'text/markdown', text: `Task not found: ${taskId}` };
172
196
  }
@@ -100,12 +100,11 @@ export function attachEventCapture(
100
100
  `[${ts()}] cmd: ${command} (exit ${exitCode ?? '?'}${duration ? ', ' + duration : ''})`,
101
101
  );
102
102
  if (itemId) {
103
- const accumulated = commandOutputBuffers.get(itemId);
104
- if (accumulated) {
105
- handle.writeOutputFileOnly(
106
- `[${ts()}] === command output: ${command} ===\n${accumulated}`,
107
- );
108
- }
103
+ // Deltas were already streamed to verbose in real-time.
104
+ // Write only a completion marker to avoid duplicating output.
105
+ handle.writeOutputFileOnly(
106
+ `[${ts()}] === command completed: ${command} (exit ${exitCode ?? '?'}${duration ? ', ' + duration : ''}) ===`,
107
+ );
109
108
  commandOutputBuffers.delete(itemId);
110
109
  }
111
110
  } else if (itemType === 'fileChange') {
package/src/index.ts CHANGED
@@ -87,7 +87,7 @@ async function main(): Promise<void> {
87
87
  const taskManager = app.getTaskManager();
88
88
 
89
89
  // --- Task creation: new resource URIs appear ---
90
- taskManager.onTaskCreate((task) => {
90
+ taskManager.onTaskCreate(() => {
91
91
  // Tell clients the resource list changed (new task:///<id> URIs)
92
92
  server.sendResourceListChanged().catch(() => {});
93
93
  // Also notify the scoreboard since a new entry appeared
@@ -100,10 +100,6 @@ async function main(): Promise<void> {
100
100
  for (const uri of uris) {
101
101
  server.sendResourceUpdated({ uri }).catch(() => {});
102
102
  }
103
- // Scoreboard is always auto-subscribed, but ensure it's notified
104
- if (!uris.includes('task:///all')) {
105
- server.sendResourceUpdated({ uri: 'task:///all' }).catch(() => {});
106
- }
107
103
  });
108
104
 
109
105
  // --- Output changes: new agent messages, command output, diffs ---
@@ -22,7 +22,7 @@ export class SubscriptionManager {
22
22
  for (const uri of this.uris) {
23
23
  if (uri === 'task:///all') {
24
24
  matches.push(uri);
25
- } else if (uri.startsWith(`task:///${taskId}`)) {
25
+ } else if (uri === `task:///${taskId}` || uri.startsWith(`task:///${taskId}/`)) {
26
26
  matches.push(uri);
27
27
  }
28
28
  }
@@ -1,4 +1,4 @@
1
- import { appendFile, mkdir, rename, writeFile } from 'node:fs/promises';
1
+ import { appendFile, mkdir, readFile, readdir, rename, writeFile } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
 
4
4
  import type { TaskState } from '../task/task-state.js';
@@ -27,7 +27,7 @@ export class TaskFileWriter {
27
27
  async writeMeta(task: TaskState): Promise<void> {
28
28
  const dir = await this.ensureDir(task.id);
29
29
  const target = join(dir, 'meta.json');
30
- const tmp = join(dir, `meta.json.tmp.${process.pid}`);
30
+ const tmp = join(dir, `meta.json.tmp.${process.pid}.${Date.now()}.${Math.random().toString(36).slice(2)}`);
31
31
  await writeFile(tmp, JSON.stringify(task, null, 2), 'utf8');
32
32
  await rename(tmp, target);
33
33
  }
@@ -41,4 +41,53 @@ export class TaskFileWriter {
41
41
  const dir = await this.ensureDir(taskId);
42
42
  await appendFile(join(dir, 'verbose.log'), line + '\n', 'utf8');
43
43
  }
44
+
45
+ /** Read a persisted task's meta.json. Returns null if missing or corrupt. */
46
+ async readMeta(taskId: string): Promise<TaskState | null> {
47
+ try {
48
+ const raw = await readFile(join(this.taskDir(taskId), 'meta.json'), 'utf8');
49
+ return JSON.parse(raw) as TaskState;
50
+ } catch {
51
+ return null;
52
+ }
53
+ }
54
+
55
+ /** Read a persisted task's verbose.log. Returns null if missing. */
56
+ async readVerboseLog(taskId: string): Promise<string | null> {
57
+ try {
58
+ return await readFile(join(this.taskDir(taskId), 'verbose.log'), 'utf8');
59
+ } catch {
60
+ return null;
61
+ }
62
+ }
63
+
64
+ /** Read a persisted task's summary.log. Returns null if missing. */
65
+ async readSummaryLog(taskId: string): Promise<string | null> {
66
+ try {
67
+ return await readFile(join(this.taskDir(taskId), 'summary.log'), 'utf8');
68
+ } catch {
69
+ return null;
70
+ }
71
+ }
72
+
73
+ /** List all task IDs that have a persisted directory with meta.json. */
74
+ async listPersistedTaskIds(): Promise<string[]> {
75
+ try {
76
+ const entries = await readdir(this.root, { withFileTypes: true });
77
+ const ids: string[] = [];
78
+ for (const entry of entries) {
79
+ if (entry.isDirectory()) {
80
+ try {
81
+ await readFile(join(this.root, entry.name, 'meta.json'), 'utf8');
82
+ ids.push(entry.name);
83
+ } catch {
84
+ // No meta.json — skip
85
+ }
86
+ }
87
+ }
88
+ return ids;
89
+ } catch {
90
+ return [];
91
+ }
92
+ }
44
93
  }
@@ -140,6 +140,17 @@ export class TaskManager {
140
140
  return task;
141
141
  }
142
142
 
143
+ /**
144
+ * Restore a previously persisted task into the store without generating
145
+ * a new ID or firing create listeners. Used during startup recovery.
146
+ */
147
+ restoreTask(task: TaskState): void {
148
+ if (this.store.get(task.id)) return; // already loaded
149
+ this.store.create(task);
150
+ const handle = createTaskHandle(this, task.id);
151
+ this.handles.set(task.id, handle);
152
+ }
153
+
143
154
  // -------------------------------------------------------------------------
144
155
  // Lookups
145
156
  // -------------------------------------------------------------------------
@@ -365,6 +376,8 @@ export class TaskManager {
365
376
  if (now - completedMs > keepAlive) {
366
377
  this.store.delete(task.id);
367
378
  this.handles.delete(task.id);
379
+ this.abortControllers.delete(task.id);
380
+ this.abortListeners.delete(task.id);
368
381
  count += 1;
369
382
  }
370
383
  }