@sumicom/quicksave 0.6.3 → 0.7.0

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.
Files changed (71) hide show
  1. package/dist/ai/cardBuilder.d.ts +27 -0
  2. package/dist/ai/cardBuilder.d.ts.map +1 -1
  3. package/dist/ai/cardBuilder.js +69 -0
  4. package/dist/ai/cardBuilder.js.map +1 -1
  5. package/dist/ai/claudeCliProvider.d.ts +1 -0
  6. package/dist/ai/claudeCliProvider.d.ts.map +1 -1
  7. package/dist/ai/claudeCliProvider.js +168 -35
  8. package/dist/ai/claudeCliProvider.js.map +1 -1
  9. package/dist/ai/claudeSdkProvider.d.ts.map +1 -1
  10. package/dist/ai/claudeSdkProvider.js +17 -6
  11. package/dist/ai/claudeSdkProvider.js.map +1 -1
  12. package/dist/ai/commitSummary.d.ts.map +1 -1
  13. package/dist/ai/commitSummary.js +37 -9
  14. package/dist/ai/commitSummary.js.map +1 -1
  15. package/dist/ai/commitSummaryCli.d.ts +67 -0
  16. package/dist/ai/commitSummaryCli.d.ts.map +1 -0
  17. package/dist/ai/commitSummaryCli.js +416 -0
  18. package/dist/ai/commitSummaryCli.js.map +1 -0
  19. package/dist/ai/commitSummaryStore.d.ts +53 -0
  20. package/dist/ai/commitSummaryStore.d.ts.map +1 -0
  21. package/dist/ai/commitSummaryStore.js +136 -0
  22. package/dist/ai/commitSummaryStore.js.map +1 -0
  23. package/dist/ai/provider.d.ts +13 -2
  24. package/dist/ai/provider.d.ts.map +1 -1
  25. package/dist/ai/sessionManager.d.ts +32 -3
  26. package/dist/ai/sessionManager.d.ts.map +1 -1
  27. package/dist/ai/sessionManager.js +229 -36
  28. package/dist/ai/sessionManager.js.map +1 -1
  29. package/dist/ai/sessionRegistry.d.ts +2 -0
  30. package/dist/ai/sessionRegistry.d.ts.map +1 -1
  31. package/dist/ai/sessionRegistry.js +9 -0
  32. package/dist/ai/sessionRegistry.js.map +1 -1
  33. package/dist/config.d.ts +4 -0
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +15 -5
  36. package/dist/config.js.map +1 -1
  37. package/dist/connection/connection.d.ts +0 -12
  38. package/dist/connection/connection.d.ts.map +1 -1
  39. package/dist/connection/connection.js +1 -44
  40. package/dist/connection/connection.js.map +1 -1
  41. package/dist/connection/pubsub.d.ts +5 -5
  42. package/dist/connection/pubsub.d.ts.map +1 -1
  43. package/dist/connection/pubsub.js +5 -7
  44. package/dist/connection/pubsub.js.map +1 -1
  45. package/dist/handlers/messageHandler.d.ts +32 -2
  46. package/dist/handlers/messageHandler.d.ts.map +1 -1
  47. package/dist/handlers/messageHandler.js +395 -176
  48. package/dist/handlers/messageHandler.js.map +1 -1
  49. package/dist/index.js +3 -3
  50. package/dist/index.js.map +1 -1
  51. package/dist/messageBus/busServerTransport.d.ts +29 -0
  52. package/dist/messageBus/busServerTransport.d.ts.map +1 -0
  53. package/dist/messageBus/busServerTransport.js +54 -0
  54. package/dist/messageBus/busServerTransport.js.map +1 -0
  55. package/dist/service/ipcClient.js +1 -1
  56. package/dist/service/pushClient.d.ts +69 -0
  57. package/dist/service/pushClient.d.ts.map +1 -0
  58. package/dist/service/pushClient.js +119 -0
  59. package/dist/service/pushClient.js.map +1 -0
  60. package/dist/service/run.d.ts.map +1 -1
  61. package/dist/service/run.js +280 -36
  62. package/dist/service/run.js.map +1 -1
  63. package/dist/service/types.d.ts +2 -0
  64. package/dist/service/types.d.ts.map +1 -1
  65. package/dist/service/types.js +13 -8
  66. package/dist/service/types.js.map +1 -1
  67. package/dist/storage/eventStore.d.ts +65 -0
  68. package/dist/storage/eventStore.d.ts.map +1 -0
  69. package/dist/storage/eventStore.js +122 -0
  70. package/dist/storage/eventStore.js.map +1 -0
  71. package/package.json +6 -2
@@ -20,6 +20,9 @@ export declare class StreamCardBuilder {
20
20
  private currentTextCardId;
21
21
  /** JSONL file byte offset at the start of the current turn — history reads stop here. */
22
22
  private _jsonlCutoff;
23
+ /** Token identifying an in-flight deferred clear. A later call (new turn, cancel)
24
+ * replaces this token, causing the pending polling task to bail out. */
25
+ private _pendingClearToken;
23
26
  constructor(sessionId: string, streamId: string, cwd: string);
24
27
  updateSessionId(sessionId: string): void;
25
28
  /** Start a new turn: update streamId and reset per-turn state, keep accumulated cards. */
@@ -34,6 +37,30 @@ export declare class StreamCardBuilder {
34
37
  persistCards(): Promise<void>;
35
38
  /** Snapshot current JSONL byte size so history reads stop before the active turn. */
36
39
  snapshotCutoff(): Promise<void>;
40
+ /**
41
+ * Wait for the JSONL file size to stop growing, then atomically clear in-memory
42
+ * cards and re-snapshot the cutoff to the final size.
43
+ *
44
+ * Why: when the `result` message arrives from the CLI on stdout, the CLI may
45
+ * not yet have flushed the turn's assistant messages to the session JSONL.
46
+ * Clearing `streamingCards` immediately and pointing getCards at the (still
47
+ * incomplete) JSONL produces a race window where getCards returns a snapshot
48
+ * that's missing the last turn's messages.
49
+ *
50
+ * By deferring the clear until the file has stopped changing, getCards always
51
+ * sees a consistent view: either JSONL (after flush) or in-memory cards (before).
52
+ *
53
+ * Cancel by calling `cancelDeferredClear()` — e.g. on hot resume when a new
54
+ * turn starts before the file has stabilized.
55
+ */
56
+ scheduleDeferredClear(opts?: {
57
+ maxWaitMs?: number;
58
+ stableMs?: number;
59
+ pollMs?: number;
60
+ }): Promise<void>;
61
+ /** Cancel any pending deferred clear. Called on hot resume so the queued clear
62
+ * doesn't wipe the next turn's cards once it completes. */
63
+ cancelDeferredClear(): void;
37
64
  get jsonlCutoff(): number | null;
38
65
  set jsonlCutoff(value: number | null);
39
66
  private nextId;
@@ -1 +1 @@
1
- {"version":3,"file":"cardBuilder.d.ts","sourceRoot":"","sources":["../../src/ai/cardBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cardBuilder.d.ts","sourceRoot":"","sources":["../../src/ai/cardBuilder.ts"],"names":[],"mappings":"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"}
@@ -167,6 +167,9 @@ export class StreamCardBuilder {
167
167
  currentTextCardId = null;
168
168
  /** JSONL file byte offset at the start of the current turn — history reads stop here. */
169
169
  _jsonlCutoff = null;
170
+ /** Token identifying an in-flight deferred clear. A later call (new turn, cancel)
171
+ * replaces this token, causing the pending polling task to bail out. */
172
+ _pendingClearToken = null;
170
173
  constructor(sessionId, streamId, cwd) {
171
174
  this.sessionId = sessionId;
172
175
  this.streamId = streamId;
@@ -233,6 +236,72 @@ export class StreamCardBuilder {
233
236
  this._jsonlCutoff = null;
234
237
  }
235
238
  }
239
+ /**
240
+ * Wait for the JSONL file size to stop growing, then atomically clear in-memory
241
+ * cards and re-snapshot the cutoff to the final size.
242
+ *
243
+ * Why: when the `result` message arrives from the CLI on stdout, the CLI may
244
+ * not yet have flushed the turn's assistant messages to the session JSONL.
245
+ * Clearing `streamingCards` immediately and pointing getCards at the (still
246
+ * incomplete) JSONL produces a race window where getCards returns a snapshot
247
+ * that's missing the last turn's messages.
248
+ *
249
+ * By deferring the clear until the file has stopped changing, getCards always
250
+ * sees a consistent view: either JSONL (after flush) or in-memory cards (before).
251
+ *
252
+ * Cancel by calling `cancelDeferredClear()` — e.g. on hot resume when a new
253
+ * turn starts before the file has stabilized.
254
+ */
255
+ async scheduleDeferredClear(opts) {
256
+ const maxWaitMs = opts?.maxWaitMs ?? 3000;
257
+ const stableMs = opts?.stableMs ?? 300;
258
+ const pollMs = opts?.pollMs ?? 50;
259
+ const token = Symbol('deferred-clear');
260
+ this._pendingClearToken = token;
261
+ const p = jsonlPath(this.sessionId, this.cwd);
262
+ const getSize = async () => {
263
+ try {
264
+ return (await stat(p)).size;
265
+ }
266
+ catch {
267
+ return -1;
268
+ }
269
+ };
270
+ let lastSize = await getSize();
271
+ if (this._pendingClearToken !== token)
272
+ return;
273
+ let stableFor = 0;
274
+ const start = Date.now();
275
+ while (Date.now() - start < maxWaitMs && stableFor < stableMs) {
276
+ await new Promise((r) => setTimeout(r, pollMs));
277
+ if (this._pendingClearToken !== token)
278
+ return;
279
+ const size = await getSize();
280
+ if (this._pendingClearToken !== token)
281
+ return;
282
+ if (size >= 0 && size === lastSize) {
283
+ stableFor += pollMs;
284
+ }
285
+ else {
286
+ stableFor = 0;
287
+ lastSize = size;
288
+ }
289
+ }
290
+ if (this._pendingClearToken !== token)
291
+ return;
292
+ this._pendingClearToken = null;
293
+ this._jsonlCutoff = lastSize >= 0 ? lastSize : null;
294
+ this.cards.clear();
295
+ this.toolUseIdToCardId.clear();
296
+ this.agentIdToCardId.clear();
297
+ this.ephemeralCards.clear();
298
+ this.currentTextCardId = null;
299
+ }
300
+ /** Cancel any pending deferred clear. Called on hot resume so the queued clear
301
+ * doesn't wipe the next turn's cards once it completes. */
302
+ cancelDeferredClear() {
303
+ this._pendingClearToken = null;
304
+ }
236
305
  get jsonlCutoff() {
237
306
  return this._jsonlCutoff;
238
307
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cardBuilder.js","sourceRoot":"","sources":["../../src/ai/cardBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cardBuilder.js","sourceRoot":"","sources":["../../src/ai/cardBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { StreamCardBuilder } from './cardBuilder.js';
2
2
  import type { CodingAgentProvider, ProviderSession, ProviderCallbacks, StartSessionOpts, ResumeSessionOpts } from './provider.js';
3
+ export declare function getClaudeBin(): string;
3
4
  export declare class ClaudeCliProvider implements CodingAgentProvider {
4
5
  readonly id: "claude-code";
5
6
  readonly historyMode: "claude-jsonl";
@@ -1 +1 @@
1
- {"version":3,"file":"claudeCliProvider.d.ts","sourceRoot":"","sources":["../../src/ai/claudeCliProvider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AA2HvB,qBAAa,iBAAkB,YAAW,mBAAmB;IAC3D,QAAQ,CAAC,EAAE,EAAG,aAAa,CAAU;IACrC,QAAQ,CAAC,WAAW,EAAG,cAAc,CAAU;IAEzC,YAAY,CAChB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAarD,aAAa,CACjB,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAe3D,OAAO,CAAC,YAAY;YA4EN,eAAe;YAyFf,aAAa;YAmGb,YAAY;YAgLZ,oBAAoB;IA8BlC,OAAO,CAAC,mBAAmB;CA0B5B"}
1
+ {"version":3,"file":"claudeCliProvider.d.ts","sourceRoot":"","sources":["../../src/ai/claudeCliProvider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAWvB,wBAAgB,YAAY,IAAI,MAAM,CAyCrC;AAoJD,qBAAa,iBAAkB,YAAW,mBAAmB;IAC3D,QAAQ,CAAC,EAAE,EAAG,aAAa,CAAU;IACrC,QAAQ,CAAC,WAAW,EAAG,cAAc,CAAU;IAEzC,YAAY,CAChB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAarD,aAAa,CACjB,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAgB3D,OAAO,CAAC,YAAY;YA8EN,eAAe;YAyFf,aAAa;YAuHb,YAAY;YA+MZ,oBAAoB;IA8BlC,OAAO,CAAC,mBAAmB;CA0B5B"}
@@ -13,7 +13,7 @@ const __ownDir = dirname(fileURLToPath(import.meta.url));
13
13
  * We resolve once and cache the result.
14
14
  */
15
15
  let _claudeBin;
16
- function getClaudeBin() {
16
+ export function getClaudeBin() {
17
17
  if (_claudeBin)
18
18
  return _claudeBin;
19
19
  // 1. Try `which` — works when PATH is correct
@@ -71,16 +71,74 @@ function extractToolResultText(content) {
71
71
  // ============================================================================
72
72
  class CliProviderSession {
73
73
  process;
74
- /** StreamIds queued by hot resume consumeStream pops after each result. */
74
+ /** StreamIds queued by hot resume during an active turn consumeStream
75
+ * pops after each result to start the next turn. Idle hot resume (CLI
76
+ * alive but between turns) bypasses this queue and writes `currentStreamId`
77
+ * directly before `sendUserMessage`. */
75
78
  pendingStreamIds = [];
79
+ /** The streamId used to tag card events and stream-end for the current
80
+ * turn. Shared with consumeStream so the SessionManager can swap it in for
81
+ * idle hot resume without waiting for the next `result` event. */
82
+ currentStreamId = '';
76
83
  /** Debug logger — attached after spawn so stdin writes are captured too. */
77
84
  debugLog;
85
+ /** Pending control_requests awaiting a control_response from the CLI. */
86
+ pendingControlResponses = new Map();
87
+ /** True while a turn (prompt/compaction/tool loop) is in flight — control_requests may be queued by CLI. */
88
+ activeTurn = false;
89
+ /** True once a `result` event has been processed for the current turn's
90
+ * streamId. Consumed by consumeStream's finally block to decide whether the
91
+ * process death counts as an unexpected exit. Reset externally on idle hot
92
+ * resume (the new turn hasn't seen its result yet). */
93
+ resultEmitted = false;
78
94
  constructor(proc) {
79
95
  this.process = proc;
80
96
  }
97
+ /**
98
+ * Send a generic control_request and await the response from the CLI.
99
+ * Timeout counts only idle time: while `activeTurn` is true the clock is
100
+ * paused, so a compaction or long tool loop will not expire the request.
101
+ */
102
+ sendControlRequest(subtype, params, idleTimeoutMs = 15_000) {
103
+ if (!this.process || this.process.killed) {
104
+ return Promise.reject(new Error('CLI process is not alive'));
105
+ }
106
+ const requestId = crypto.randomUUID();
107
+ const request = { subtype, ...(params ?? {}) };
108
+ const msg = { type: 'control_request', request_id: requestId, request };
109
+ return new Promise((resolve, reject) => {
110
+ const tickMs = 500;
111
+ let idleAccumulated = 0;
112
+ const timer = setInterval(() => {
113
+ if (!this.activeTurn)
114
+ idleAccumulated += tickMs;
115
+ if (idleAccumulated >= idleTimeoutMs) {
116
+ clearInterval(timer);
117
+ this.pendingControlResponses.delete(requestId);
118
+ reject(new Error(`Control request ${subtype} timed out after ${idleTimeoutMs}ms idle`));
119
+ }
120
+ }, tickMs);
121
+ this.pendingControlResponses.set(requestId, {
122
+ resolve: (v) => { clearInterval(timer); resolve(v); },
123
+ reject: (e) => { clearInterval(timer); reject(e); },
124
+ });
125
+ try {
126
+ this.debugLog?.logRawEvent({ ...msg, _direction: 'stdin' });
127
+ this.process.stdin.write(JSON.stringify(msg) + '\n');
128
+ }
129
+ catch (err) {
130
+ this.pendingControlResponses.delete(requestId);
131
+ clearInterval(timer);
132
+ reject(err instanceof Error ? err : new Error(String(err)));
133
+ }
134
+ });
135
+ }
81
136
  sendUserMessage(prompt) {
82
137
  if (!this.process || this.process.killed)
83
138
  return;
139
+ // Pause the idle clock immediately — CLI will start a new turn once it
140
+ // reads this stdin, even before it emits the first stream event.
141
+ this.activeTurn = true;
84
142
  const userMsg = {
85
143
  type: 'user',
86
144
  message: { role: 'user', content: prompt },
@@ -105,6 +163,24 @@ class CliProviderSession {
105
163
  this.process?.kill('SIGTERM');
106
164
  }
107
165
  }
166
+ async getContextUsage() {
167
+ if (!this.process || this.process.killed)
168
+ return null;
169
+ // Wall-clock cap: sendControlRequest's idle clock pauses while another
170
+ // turn is in flight, so without a hard ceiling this could hang across
171
+ // back-to-back turns. 10s is plenty — the CLI normally answers in <100ms.
172
+ const wallTimeout = new Promise((resolve) => setTimeout(() => resolve(null), 10_000));
173
+ try {
174
+ const response = await Promise.race([
175
+ this.sendControlRequest('get_context_usage', undefined, 10_000),
176
+ wallTimeout,
177
+ ]);
178
+ return response ?? null;
179
+ }
180
+ catch {
181
+ return null;
182
+ }
183
+ }
108
184
  kill() {
109
185
  if (this.process) {
110
186
  this.process.kill('SIGTERM');
@@ -136,12 +212,13 @@ export class ClaudeCliProvider {
136
212
  const args = this.buildCliArgs({
137
213
  prompt: opts.prompt,
138
214
  cwd: opts.cwd,
215
+ model: opts.model,
139
216
  permissionMode: opts.permissionLevel,
140
217
  systemPrompt: opts.systemPrompt,
141
218
  resumeSessionId: opts.sessionId,
142
219
  sandboxed: opts.sandboxed,
143
220
  });
144
- return this.spawnAndConsume(args, opts.cwd, opts.streamId, opts.permissionLevel, opts.sandboxed, opts.prompt, cardBuilder, callbacks);
221
+ return this.spawnAndConsume(args, opts.cwd, opts.streamId, opts.permissionLevel, opts.sandboxed, opts.prompt, cardBuilder, callbacks, opts.model);
145
222
  }
146
223
  // ── Private: CLI Args ──
147
224
  buildCliArgs(opts) {
@@ -151,6 +228,7 @@ export class ClaudeCliProvider {
151
228
  '--permission-prompt-tool', 'stdio',
152
229
  '--verbose',
153
230
  '-p', '', // empty print flag — prompt sent via stdin
231
+ '--replay-user-messages', // keep CLI alive across stdin user messages (enables hot resume)
154
232
  ];
155
233
  if (opts.systemPrompt) {
156
234
  args.push('--append-system-prompt', opts.systemPrompt);
@@ -162,7 +240,8 @@ export class ClaudeCliProvider {
162
240
  const cliMode = opts.permissionMode === 'bypassPermissions' ? 'bypassPermissions'
163
241
  : opts.permissionMode === 'acceptEdits' ? 'acceptEdits'
164
242
  : opts.permissionMode === 'plan' ? 'plan'
165
- : 'default';
243
+ : opts.permissionMode === 'auto' ? 'auto'
244
+ : 'default';
166
245
  args.push('--permission-mode', cliMode);
167
246
  }
168
247
  if (opts.resumeSessionId) {
@@ -269,15 +348,16 @@ export class ClaudeCliProvider {
269
348
  }
270
349
  // ── Private: Stream Consumer ──
271
350
  async consumeStream(sessionId, initialStreamId, rl, bufferedLines, cliSession, cb, callbacks, prompt, debugLog) {
272
- let streamId = initialStreamId;
351
+ cliSession.currentStreamId = initialStreamId;
352
+ cliSession.resultEmitted = false;
273
353
  let textBuffer = '';
274
354
  let bufferTimer = null;
275
- let resultEmitted = false;
276
355
  const emitCard = (event) => {
277
356
  debugLog?.logCardEvent(event);
278
357
  callbacks.emitCardEvent(event);
279
358
  };
280
- cb.startNewTurn(streamId);
359
+ cb.startNewTurn(cliSession.currentStreamId);
360
+ cliSession.activeTurn = true;
281
361
  // Add user prompt to cardBuilder (for getCards on reconnect) but don't emit
282
362
  // as a card-event — the PWA already shows an optimistic user card.
283
363
  if (prompt) {
@@ -312,20 +392,29 @@ export class ClaudeCliProvider {
312
392
  return;
313
393
  }
314
394
  debugLog?.logRawEvent(msg);
315
- const emittedResult = await this.routeMessage(sessionId, streamId, msg, cliSession, cb, callbacks, emitCard, flushText, bufferText, debugLog);
395
+ const emittedResult = await this.routeMessage(sessionId, cliSession.currentStreamId, msg, cliSession, cb, callbacks, emitCard, flushText, bufferText, debugLog);
316
396
  if (emittedResult) {
317
- resultEmitted = true;
397
+ cliSession.resultEmitted = true;
318
398
  // Hot resume: if there's a pending streamId, start a new turn for it.
319
- // This must live here (not in routeMessage) so the outer `streamId`
320
- // variable is updated — routeMessage receives it by value.
399
+ // This must live here (not in routeMessage) so the outer
400
+ // `cliSession.currentStreamId` is updated — routeMessage receives it
401
+ // by value.
321
402
  const nextStreamId = cliSession.pendingStreamIds.shift();
322
403
  if (nextStreamId) {
323
- // Hot resume: re-snapshot cutoff now that the turn is committed to JSONL,
324
- // so getCards() doesn't duplicate the new turn's messages.
325
- await cb.snapshotCutoff();
326
- streamId = nextStreamId;
327
- cb.startNewTurn(streamId);
328
- resultEmitted = false; // Reset for next turn
404
+ // Hot resume: cancel the prior turn's deferred clear so the pending
405
+ // poll doesn't wipe the next turn. Do NOT snapshotCutoff or clearCards
406
+ // here — the prior turn's messages may not be flushed to JSONL yet,
407
+ // and advancing cutoff past them while they're already in JSONL
408
+ // produces duplicates. Keep streamingCards as-is; the final turn's
409
+ // scheduleDeferredClear sweeps everything once the chain commits.
410
+ cb.cancelDeferredClear();
411
+ cliSession.currentStreamId = nextStreamId;
412
+ cb.startNewTurn(nextStreamId);
413
+ cliSession.activeTurn = true;
414
+ cliSession.resultEmitted = false; // Reset for next turn
415
+ }
416
+ else {
417
+ cliSession.activeTurn = false;
329
418
  }
330
419
  }
331
420
  };
@@ -342,18 +431,27 @@ export class ClaudeCliProvider {
342
431
  flushText();
343
432
  console.error(`[cli] stream error session=${sessionId.slice(0, 8)}:`, error);
344
433
  const msg = error instanceof Error ? error.message : 'Unknown error';
345
- callbacks.emitStreamEnd({ streamId, sessionId, success: false, error: msg });
346
- resultEmitted = true;
434
+ callbacks.emitStreamEnd({ streamId: cliSession.currentStreamId, sessionId, success: false, error: msg });
435
+ cliSession.resultEmitted = true;
347
436
  }
348
437
  finally {
349
438
  if (bufferTimer)
350
439
  clearTimeout(bufferTimer);
351
440
  // Process exited — clean up
352
441
  cliSession.process = null;
353
- if (!resultEmitted) {
354
- // Process died without resultemit error
355
- callbacks.emitStreamEnd({ streamId, sessionId, success: false, error: 'Process exited unexpectedly' });
442
+ cliSession.activeTurn = false;
443
+ // Fail any still-pending control_requestsno response will ever arrive.
444
+ for (const [reqId, pending] of cliSession.pendingControlResponses) {
445
+ cliSession.pendingControlResponses.delete(reqId);
446
+ pending.reject(new Error('CLI process exited before control_response'));
447
+ }
448
+ if (!cliSession.resultEmitted) {
449
+ callbacks.emitStreamEnd({ streamId: cliSession.currentStreamId, sessionId, success: false, error: 'Process exited unexpectedly' });
356
450
  }
451
+ // Notify SessionManager so it can remove the entry and emit
452
+ // `session-updated { isActive: false }`. Without this the badge stays
453
+ // on "Standby" forever when the CLI dies between turns.
454
+ callbacks.onSessionExited?.(sessionId, cliSession);
357
455
  }
358
456
  }
359
457
  // ── Private: Route a single stream-json message ──
@@ -364,8 +462,31 @@ export class ClaudeCliProvider {
364
462
  await this.handleControlRequest(sessionId, msg, cliSession, callbacks);
365
463
  return false;
366
464
  }
367
- // Skip control echoes
368
- if (msg.type === 'control_response' || msg.type === 'control_cancel_request')
465
+ // Route control_response to a pending request if we have one
466
+ if (msg.type === 'control_response') {
467
+ const responseBody = msg.response;
468
+ const reqId = responseBody?.request_id;
469
+ if (reqId) {
470
+ const pending = cliSession.pendingControlResponses.get(reqId);
471
+ if (pending) {
472
+ cliSession.pendingControlResponses.delete(reqId);
473
+ if (responseBody.subtype === 'success') {
474
+ pending.resolve(responseBody.response);
475
+ }
476
+ else {
477
+ pending.reject(new Error(responseBody.error ?? 'control_request failed'));
478
+ }
479
+ }
480
+ else {
481
+ // Unmatched response: almost always an echo from --replay-user-messages of a
482
+ // control_response WE sent (e.g. permission decision). Leave a debug line rather
483
+ // than a warning since this is expected in replay mode.
484
+ console.debug(`[cli] control_response with no matching pending request (likely replay echo): request_id=${reqId} subtype=${responseBody?.subtype} session=${sessionId.slice(0, 8)}`);
485
+ }
486
+ }
487
+ return false;
488
+ }
489
+ if (msg.type === 'control_cancel_request')
369
490
  return false;
370
491
  // ── System events ──
371
492
  if (msg.type === 'system') {
@@ -406,8 +527,11 @@ export class ClaudeCliProvider {
406
527
  flushText();
407
528
  const blocks = msg.message?.content ?? [];
408
529
  for (const block of blocks) {
409
- if (block.type === 'thinking' && block.thinking) {
410
- emitCard(cb.thinkingBlock(block.thinking));
530
+ if (block.type === 'thinking') {
531
+ // Skip empty thinking blocks so they don't fall through to the
532
+ // unknown-block catch-all below and render as "[thinking] …".
533
+ if (block.thinking)
534
+ emitCard(cb.thinkingBlock(block.thinking));
411
535
  }
412
536
  else if (block.type === 'redacted_thinking') {
413
537
  emitCard(cb.thinkingBlock('[Redacted thinking]'));
@@ -446,6 +570,8 @@ export class ClaudeCliProvider {
446
570
  if (msg.type === 'user') {
447
571
  if (msg.agentId)
448
572
  return false; // sidechain
573
+ if (msg.isReplay)
574
+ return false; // echoed back by --replay-user-messages; we already added it to cardBuilder history
449
575
  const content = msg.message?.content;
450
576
  if (typeof content === 'string' && content) {
451
577
  flushText();
@@ -493,7 +619,11 @@ export class ClaudeCliProvider {
493
619
  flushText();
494
620
  const terminalReason = msg.terminal_reason;
495
621
  const interrupted = terminalReason === 'aborted_tools' || terminalReason === 'aborted_streaming';
496
- console.log(`[cli] result session=${sessionId.slice(0, 8)} subtype=${msg.subtype} cost=$${msg.total_cost_usd?.toFixed(4) ?? '?'}`);
622
+ const modelUsage = msg.modelUsage;
623
+ const modelSummary = modelUsage
624
+ ? Object.entries(modelUsage).map(([m, u]) => `${m}(ctx=${u.contextWindow ?? '?'})`).join(', ')
625
+ : '?';
626
+ console.log(`[cli] result session=${sessionId.slice(0, 8)} subtype=${msg.subtype} cost=$${msg.total_cost_usd?.toFixed(4) ?? '?'} models=[${modelSummary}]`);
497
627
  if (interrupted) {
498
628
  emitCard(cb.systemMessage('User interrupted'));
499
629
  }
@@ -510,18 +640,21 @@ export class ClaudeCliProvider {
510
640
  interrupted,
511
641
  totalCostUsd: msg.total_cost_usd,
512
642
  tokenUsage: msg.usage
513
- ? { input: msg.usage.input_tokens, output: msg.usage.output_tokens }
643
+ ? {
644
+ input: msg.usage.input_tokens,
645
+ output: msg.usage.output_tokens,
646
+ cacheCreation: msg.usage.cache_creation_input_tokens,
647
+ cacheRead: msg.usage.cache_read_input_tokens,
648
+ }
514
649
  : undefined,
515
650
  };
516
651
  callbacks.emitStreamEnd(streamEnd);
517
- // Snapshot and clear in-memory cards. After clearCards(), set cutoff to
518
- // null so getCards() reads the full JSONL the active turn is now part
519
- // of the persisted history. snapshotCutoff() alone is unreliable here
520
- // because Claude Code may not have flushed all messages to the JSONL by
521
- // the time the result arrives on stdout (race condition).
652
+ // Defer clearing in-memory cards until JSONL has stabilized: the CLI may
653
+ // not have flushed all messages to JSONL by the time `result` arrives on
654
+ // stdout. Clearing synchronously creates a window where getCards() sees
655
+ // neither the streamingCards (cleared) nor the final turn (not flushed).
522
656
  debugLog?.logCardBuilderSnapshot(cb.getCards());
523
- cb.clearCards();
524
- cb.jsonlCutoff = null;
657
+ void cb.scheduleDeferredClear();
525
658
  return true;
526
659
  }
527
660
  return false;