imcodes 2026.3.64 → 2026.3.70

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.
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.getP2pRun = getP2pRun;
14
14
  exports.listP2pRuns = listP2pRuns;
15
15
  exports._setIdlePollMs = _setIdlePollMs;
16
+ exports._setGracePeriodMs = _setGracePeriodMs;
16
17
  exports.notifySessionIdle = notifySessionIdle;
17
18
  exports.startP2pRun = startP2pRun;
18
19
  exports.cancelP2pRun = cancelP2pRun;
@@ -22,10 +23,10 @@ const node_path_1 = require("node:path");
22
23
  const node_crypto_1 = require("node:crypto");
23
24
  const tmux_js_1 = require("../agent/tmux.js");
24
25
  const detect_js_1 = require("../agent/detect.js");
25
- const tmux_js_2 = require("../agent/tmux.js");
26
26
  const session_store_js_1 = require("../store/session-store.js");
27
27
  const p2p_modes_js_1 = require("../shared/p2p-modes.js");
28
28
  const logger_js_1 = __importDefault(require("../util/logger.js"));
29
+ const timeline_emitter_js_1 = require("./timeline-emitter.js");
29
30
  // ── In-memory store ───────────────────────────────────────────────────────
30
31
  const activeRuns = new Map();
31
32
  function getP2pRun(id) { return activeRuns.get(id); }
@@ -34,8 +35,11 @@ function listP2pRuns() { return [...activeRuns.values()]; }
34
35
  const node_os_1 = require("node:os");
35
36
  const P2P_DIR = (0, node_path_1.join)((0, node_os_1.homedir)(), '.imcodes', 'discussions');
36
37
  let IDLE_POLL_MS = 3_000;
38
+ let GRACE_PERIOD_DEFAULT_MS = 30_000;
37
39
  /** Override poll interval for tests. */
38
40
  function _setIdlePollMs(ms) { IDLE_POLL_MS = ms; }
41
+ /** Override grace period for tests. */
42
+ function _setGracePeriodMs(ms) { GRACE_PERIOD_DEFAULT_MS = ms; }
39
43
  const idleWaiters = new Map();
40
44
  /**
41
45
  * Called by lifecycle hook when a session becomes idle.
@@ -121,6 +125,7 @@ async function startP2pRun(initiatorSession, targets, userText, fileContents, se
121
125
  mode,
122
126
  status: 'queued',
123
127
  contextFilePath,
128
+ userText,
124
129
  timeoutMs: modeConfig?.defaultTimeoutMs ?? 300_000,
125
130
  resultSummary: null,
126
131
  error: null,
@@ -203,129 +208,196 @@ async function executeChain(run, modeConfig, serverLink) {
203
208
  const target = targets[i];
204
209
  const hopLabel = `${shortName(target.session)} — ${capitalize(target.mode)} (hop ${i + 1}/${totalHops})`;
205
210
  const hopModeConfig = (0, p2p_modes_js_1.getP2pMode)(target.mode) ?? modeConfig;
211
+ // For sandboxed agents: copy discussion file into project dir
212
+ const sandboxed = isSandboxedSession(target.session);
213
+ let sandboxLocalPath = null;
214
+ if (sandboxed) {
215
+ sandboxLocalPath = await copyToSandbox(run, target.session);
216
+ logger_js_1.default.info({ runId: run.id, target: target.session, sandboxLocalPath }, 'P2P: sandboxed agent — using project-local temp file');
217
+ }
206
218
  const hopPrompt = buildHopPrompt(run, hopModeConfig, {
207
219
  session: target.session,
208
220
  sectionHeader: hopLabel,
209
221
  instruction: `Read the full context file and provide your ${target.mode} analysis. Append your output to the file.`,
210
222
  isInitial: false,
223
+ filePath: sandboxLocalPath ?? undefined,
211
224
  });
212
- // Wait for target to be idle
213
- logger_js_1.default.info({ runId: run.id, target: target.session, mode: target.mode, hop: i + 1, totalHops }, 'P2P: Phase 2 — waiting for target idle before dispatch');
214
- await waitForIdle(run, target.session, serverLink);
215
- if (run._cancelled)
216
- return;
217
- logger_js_1.default.info({ runId: run.id, target: target.session, status: run.status }, 'P2P: Phase 2 — target idle, dispatching hop');
218
- await dispatchHop(run, target.session, hopPrompt, serverLink);
225
+ // Dispatch immediately agent will queue the message and process after current task
226
+ logger_js_1.default.info({ runId: run.id, target: target.session, mode: target.mode, hop: i + 1, totalHops }, 'P2P: Phase 2 — dispatching hop');
227
+ await dispatchHop(run, target.session, hopPrompt, serverLink, sandboxLocalPath);
219
228
  logger_js_1.default.info({ runId: run.id, target: target.session, status: run.status }, 'P2P: Phase 2 — hop dispatch returned');
220
229
  if (run._cancelled || isTerminal(run.status))
221
230
  return;
222
231
  }
223
- // ── Phase 3: Initiator summary ──
232
+ // ── Phase 3: Initiator summary + execute user instructions ──
224
233
  logger_js_1.default.info({ runId: run.id, status: run.status }, 'P2P: Phase 3 — initiator summary');
225
234
  if (run._cancelled)
226
235
  return;
236
+ const summaryInstruction = [
237
+ 'Read the complete context file with all participants\' contributions. Synthesize a final summary. Append it to the file.',
238
+ '',
239
+ 'After writing the summary, execute the user\'s original request based on the discussion results.',
240
+ `Original user request: "${run.userText}"`,
241
+ 'If the user requested output to a specific file (e.g. a plan document), generate that file now using the discussion consensus.',
242
+ ].join('\n');
227
243
  const summaryPrompt = buildHopPrompt(run, modeConfig, {
228
244
  session: run.initiatorSession,
229
245
  sectionHeader: `${shortName(run.initiatorSession)} — Summary`,
230
- instruction: 'Read the complete context file with all participants\' contributions. Synthesize a final summary. Append it to the file.',
246
+ instruction: summaryInstruction,
231
247
  isInitial: false,
232
248
  });
233
249
  await dispatchHop(run, run.initiatorSession, summaryPrompt, serverLink);
234
250
  if (run._cancelled || isTerminal(run.status))
235
251
  return;
236
252
  // ── Done ──
253
+ let fullContent = '';
237
254
  try {
238
- const content = await (0, promises_1.readFile)(run.contextFilePath, 'utf8');
239
- run.resultSummary = content.slice(-2000); // last 2000 chars as summary
255
+ fullContent = await (0, promises_1.readFile)(run.contextFilePath, 'utf8');
256
+ run.resultSummary = fullContent.slice(-2000); // last 2000 chars as summary
240
257
  }
241
258
  catch { /* ignore */ }
242
259
  run.completedAt = new Date().toISOString();
243
260
  transition(run, 'completed', serverLink);
261
+ // Emit discussion result to initiator session timeline (summary only, not full content)
262
+ timeline_emitter_js_1.timelineEmitter.emit(run.initiatorSession, 'assistant.text', {
263
+ text: `**P2P Discussion Complete** (${run.id})\n\nFile: \`${run.contextFilePath}\`\n\n${run.resultSummary ?? '(no summary)'}`,
264
+ p2pRunId: run.id,
265
+ p2pDiscussionId: run.discussionId,
266
+ }, { source: 'daemon' });
244
267
  // Keep in memory for a bit so status queries work, then clean up
245
268
  setTimeout(() => activeRuns.delete(run.id), 60_000);
246
269
  }
247
270
  // ── Single hop dispatch + wait ────────────────────────────────────────────
248
- async function dispatchHop(run, session, prompt, serverLink) {
271
+ async function dispatchHop(run, session, prompt, serverLink, sandboxLocalPath) {
249
272
  run.currentTargetSession = session;
250
273
  run.remainingTargets = run.remainingTargets.filter((t) => t.session !== session);
251
274
  transition(run, 'dispatched', serverLink);
252
- // Record file size before dispatch
253
- let sizeBefore = 0;
254
- try {
255
- sizeBefore = (await (0, promises_1.stat)(run.contextFilePath)).size;
256
- }
257
- catch { /* file should exist */ }
258
- // Send the prompt to the agent
259
- try {
260
- await (0, tmux_js_1.sendKeysDelayedEnter)(session, prompt);
261
- }
262
- catch (err) {
263
- failRun(run, 'dispatch_failed', `sendKeys failed: ${err}`, serverLink);
264
- return;
265
- }
266
- // Wait for: file grows + agent idle
267
- // Uses dual strategy: poll for file growth + idle, AND listen for idle hook event.
268
- // Whichever fires first wins.
269
- const deadline = Date.now() + run.timeoutMs;
270
- let fileGrew = false;
271
- let idleEventReceived = false;
272
- // Start listening for idle event immediately
273
- const idlePromise = waitForIdleEvent(session, run.timeoutMs).then((ok) => {
274
- idleEventReceived = ok;
275
- });
276
- while (Date.now() < deadline) {
277
- if (run._cancelled)
278
- return;
279
- await sleep(IDLE_POLL_MS);
275
+ const watchPath = sandboxLocalPath ?? run.contextFilePath;
276
+ const MAX_RETRIES = 1;
277
+ for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
280
278
  if (run._cancelled)
281
279
  return;
282
- // Check file growth
283
- if (!fileGrew) {
284
- try {
285
- const currentSize = (await (0, promises_1.stat)(run.contextFilePath)).size;
286
- if (currentSize > sizeBefore) {
287
- fileGrew = true;
288
- if (run.status === 'dispatched') {
289
- transition(run, 'running', serverLink);
280
+ // Record file size before dispatch
281
+ let sizeBefore = 0;
282
+ try {
283
+ sizeBefore = (await (0, promises_1.stat)(watchPath)).size;
284
+ }
285
+ catch { /* file should exist */ }
286
+ // Send the prompt (sendKeys auto-handles long text; pass cwd for sandboxed agents)
287
+ const sessionRecord = (0, session_store_js_1.getSession)(session);
288
+ const sendOpts = isSandboxedSession(session) ? { cwd: sessionRecord?.projectDir } : undefined;
289
+ try {
290
+ await (0, tmux_js_1.sendKeysDelayedEnter)(session, prompt, sendOpts);
291
+ // Emit prompt content to timeline for debug/tracking visibility
292
+ timeline_emitter_js_1.timelineEmitter.emit(session, 'user.message', {
293
+ text: prompt,
294
+ p2pRunId: run.id,
295
+ source: 'p2p-orchestrator',
296
+ }, { source: 'daemon' });
297
+ }
298
+ catch (err) {
299
+ if (attempt < MAX_RETRIES) {
300
+ logger_js_1.default.warn({ runId: run.id, session, attempt }, 'P2P: sendKeys failed, will retry');
301
+ await sleep(2_000);
302
+ continue;
303
+ }
304
+ logger_js_1.default.warn({ runId: run.id, session, err }, 'P2P: hop dispatch failed after retry, skipping');
305
+ return; // skip this hop, don't fail the whole run
306
+ }
307
+ // Wait for completion: file growth + idle
308
+ // Grace period: agent needs time to receive prompt, parse it, and start working.
309
+ // Don't check idle-without-growth until after this period.
310
+ const GRACE_PERIOD_MS = GRACE_PERIOD_DEFAULT_MS;
311
+ const dispatchTime = Date.now();
312
+ const deadline = dispatchTime + run.timeoutMs;
313
+ let fileGrew = false;
314
+ let idleDetected = false;
315
+ let idleEventReceived = false;
316
+ const idlePromise = waitForIdleEvent(session, run.timeoutMs).then((ok) => { idleEventReceived = ok; });
317
+ while (Date.now() < deadline) {
318
+ if (run._cancelled)
319
+ return;
320
+ await sleep(IDLE_POLL_MS);
321
+ if (run._cancelled)
322
+ return;
323
+ // Check file growth
324
+ if (!fileGrew) {
325
+ try {
326
+ const currentSize = (await (0, promises_1.stat)(watchPath)).size;
327
+ if (currentSize > sizeBefore) {
328
+ fileGrew = true;
329
+ if (run.status === 'dispatched')
330
+ transition(run, 'running', serverLink);
290
331
  }
291
332
  }
333
+ catch { /* ignore */ }
292
334
  }
293
- catch { /* ignore */ }
294
- }
295
- // Check idle either via hook event or poll
296
- if (fileGrew) {
297
- if (idleEventReceived) {
335
+ // Check idle (via event or poll) — but only after grace period or if file already grew
336
+ const pastGrace = (Date.now() - dispatchTime) > GRACE_PERIOD_MS;
337
+ if (!idleDetected && (pastGrace || fileGrew)) {
338
+ if (idleEventReceived) {
339
+ idleDetected = true;
340
+ }
341
+ else {
342
+ try {
343
+ const record = (0, session_store_js_1.getSession)(session);
344
+ const agentType = (record?.agentType ?? 'claude-code');
345
+ if (await (0, detect_js_1.detectStatusAsync)(session, agentType) === 'idle')
346
+ idleDetected = true;
347
+ }
348
+ catch { /* ignore */ }
349
+ }
350
+ }
351
+ // Success: file grew AND agent is idle
352
+ if (fileGrew && idleDetected) {
353
+ if (sandboxLocalPath)
354
+ await copyBackFromSandbox(run, sandboxLocalPath);
298
355
  if (run.remainingTargets.length > 0 || session !== run.initiatorSession) {
299
356
  transition(run, 'awaiting_next_hop', serverLink);
300
357
  }
301
358
  return;
302
359
  }
303
- // Fallback: poll detectStatus
304
- try {
305
- const lines = await (0, tmux_js_2.capturePane)(session);
306
- const record = (0, session_store_js_1.getSession)(session);
307
- const agentType = (record?.agentType ?? 'claude-code');
308
- if ((0, detect_js_1.detectStatus)(lines, agentType) === 'idle') {
309
- if (run.remainingTargets.length > 0 || session !== run.initiatorSession) {
310
- transition(run, 'awaiting_next_hop', serverLink);
311
- }
312
- return;
360
+ // Idle but file didn't grow (only check after grace period) → agent ignored the prompt
361
+ if (idleDetected && !fileGrew && pastGrace) {
362
+ if (attempt < MAX_RETRIES) {
363
+ logger_js_1.default.warn({ runId: run.id, session, attempt }, 'P2P: agent went idle without writing to file, retrying');
364
+ break; // break inner loop to retry outer loop
365
+ }
366
+ // Max retries exhausted skip this hop
367
+ logger_js_1.default.warn({ runId: run.id, session }, 'P2P: agent idle without file change after retry, skipping hop');
368
+ if (sandboxLocalPath)
369
+ await copyBackFromSandbox(run, sandboxLocalPath).catch(() => { });
370
+ if (run.remainingTargets.length > 0 || session !== run.initiatorSession) {
371
+ transition(run, 'awaiting_next_hop', serverLink);
313
372
  }
373
+ return;
314
374
  }
315
- catch { /* ignore */ }
316
375
  }
317
- }
318
- // Cleanup: the idle event listener will auto-timeout
319
- void idlePromise;
320
- // Timeout
321
- if (!run._cancelled) {
322
- failRun(run, 'timed_out', `Hop timed out after ${run.timeoutMs}ms`, serverLink);
376
+ void idlePromise;
377
+ // If we got here from break (retry), continue to next attempt
378
+ if (idleDetected && !fileGrew && attempt < MAX_RETRIES)
379
+ continue;
380
+ // Timeout — copy back whatever we got and skip (don't fail the whole run)
381
+ if (sandboxLocalPath)
382
+ await copyBackFromSandbox(run, sandboxLocalPath).catch(() => { });
383
+ logger_js_1.default.warn({ runId: run.id, session }, 'P2P: hop timed out, skipping to next');
384
+ if (run.remainingTargets.length > 0 || session !== run.initiatorSession) {
385
+ transition(run, 'awaiting_next_hop', serverLink);
386
+ }
387
+ return;
323
388
  }
324
389
  }
325
390
  // ── Wait for target session to be idle ────────────────────────────────────
326
391
  async function waitForIdle(run, session, serverLink) {
327
392
  logger_js_1.default.info({ runId: run.id, session }, 'P2P: waiting for target session to become idle');
328
- // Dual strategy: hook event (instant for CC) + polling fallback (for codex/gemini/shell)
393
+ // 1. Check store state first if already idle, proceed immediately
394
+ const record = (0, session_store_js_1.getSession)(session);
395
+ if (record?.state === 'idle') {
396
+ logger_js_1.default.info({ runId: run.id, session }, 'P2P: target already idle (store), proceeding');
397
+ return;
398
+ }
399
+ // 2. Wait for idle event (timeline listener fires notifySessionIdle on any state change to idle)
400
+ // with polling fallback via detectStatusAsync (cursor-based for codex)
329
401
  let idleEventFired = false;
330
402
  const idlePromise = waitForIdleEvent(session, run.timeoutMs).then((ok) => { idleEventFired = ok; });
331
403
  const deadline = Date.now() + run.timeoutMs;
@@ -333,16 +405,19 @@ async function waitForIdle(run, session, serverLink) {
333
405
  if (run._cancelled)
334
406
  return;
335
407
  if (idleEventFired) {
336
- logger_js_1.default.info({ runId: run.id, session }, 'P2P: target idle (via hook event), proceeding');
408
+ logger_js_1.default.info({ runId: run.id, session }, 'P2P: target idle (via event), proceeding');
337
409
  return;
338
410
  }
339
411
  // Poll fallback
340
412
  try {
341
- const lines = await (0, tmux_js_2.capturePane)(session);
342
- const record = (0, session_store_js_1.getSession)(session);
343
- const agentType = (record?.agentType ?? 'claude-code');
344
- if ((0, detect_js_1.detectStatus)(lines, agentType) === 'idle') {
345
- logger_js_1.default.info({ runId: run.id, session }, 'P2P: target idle (via poll), proceeding');
413
+ const r = (0, session_store_js_1.getSession)(session);
414
+ if (r?.state === 'idle') {
415
+ logger_js_1.default.info({ runId: run.id, session }, 'P2P: target idle (store poll), proceeding');
416
+ return;
417
+ }
418
+ const agentType = (r?.agentType ?? 'claude-code');
419
+ if (await (0, detect_js_1.detectStatusAsync)(session, agentType) === 'idle') {
420
+ logger_js_1.default.info({ runId: run.id, session }, 'P2P: target idle (detectStatusAsync), proceeding');
346
421
  return;
347
422
  }
348
423
  }
@@ -354,22 +429,51 @@ async function waitForIdle(run, session, serverLink) {
354
429
  failRun(run, 'timed_out', `Target ${session} never became idle after ${run.timeoutMs}ms`, serverLink);
355
430
  }
356
431
  }
432
+ // ── Sandbox detection ─────────────────────────────────────────────────────
433
+ /** Agents that can only read/write files within their project directory. */
434
+ const SANDBOXED_AGENTS = new Set(['gemini']);
435
+ function isSandboxedSession(session) {
436
+ const record = (0, session_store_js_1.getSession)(session);
437
+ return SANDBOXED_AGENTS.has(record?.agentType ?? '');
438
+ }
439
+ /**
440
+ * For sandboxed agents: copy the discussion file into the project dir,
441
+ * return the local temp path. After the hop, copyBackFromSandbox() merges it back.
442
+ */
443
+ async function copyToSandbox(run, session) {
444
+ const record = (0, session_store_js_1.getSession)(session);
445
+ if (!record?.projectDir)
446
+ return null;
447
+ const localPath = (0, node_path_1.join)(record.projectDir, `.p2p-${run.id}.md`);
448
+ await (0, promises_1.copyFile)(run.contextFilePath, localPath);
449
+ return localPath;
450
+ }
451
+ async function copyBackFromSandbox(run, localPath) {
452
+ try {
453
+ await (0, promises_1.copyFile)(localPath, run.contextFilePath);
454
+ await (0, promises_1.unlink)(localPath);
455
+ }
456
+ catch (err) {
457
+ logger_js_1.default.warn({ err, localPath }, 'P2P: failed to copy back from sandbox temp file');
458
+ }
459
+ }
357
460
  function buildHopPrompt(run, mode, opts) {
358
461
  const parts = [];
462
+ const filePath = opts.filePath ?? run.contextFilePath;
359
463
  // Mode role prompt
360
464
  if (mode?.prompt) {
361
465
  parts.push(mode.prompt);
362
466
  }
363
467
  // System instructions for P2P collaboration — must be extremely clear and actionable
364
468
  parts.push(`\n[P2P TASK — YOU MUST ACT ON THIS IMMEDIATELY]`);
365
- parts.push(`This is an automated P2P Quick Discussion task (run: ${run.id}). Do NOT reply conversationally. Execute the steps below NOW.`);
469
+ parts.push(`This is a P2P Quick Discussion task (run: ${run.id}). Do NOT reply conversationally. Execute the steps below NOW.`);
366
470
  parts.push(``);
367
- parts.push(`Step 1: Read the context file: ${run.contextFilePath}`);
471
+ parts.push(`Step 1: Read the context file: ${filePath}`);
368
472
  parts.push(`Step 2: ${opts.instruction}`);
369
473
  parts.push(`Step 3: Append your analysis to the SAME file under the heading "## ${opts.sectionHeader}"`);
370
474
  parts.push(``);
371
475
  parts.push(`CRITICAL RULES:`);
372
- parts.push(`- Write output to the FILE at ${run.contextFilePath}, NOT to the chat/screen.`);
476
+ parts.push(`- Write output to the FILE at ${filePath}, NOT to the chat/screen.`);
373
477
  parts.push(`- Use your file editing tools (Edit/Write/Bash) to append to the file.`);
374
478
  parts.push(`- Do NOT ask the user for confirmation. Just do it.`);
375
479
  parts.push(`- After writing, say "Done" and nothing else.`);
@@ -1 +1 @@
1
- {"version":3,"file":"p2p-orchestrator.js","sourceRoot":"","sources":["../../src/daemon/p2p-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p2p-orchestrator.js","sourceRoot":"","sources":["../../src/daemon/p2p-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-emitter.d.ts","sourceRoot":"","sources":["../../src/daemon/timeline-emitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAKhH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,QAAQ,CAAyC;IACzD,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB,CAA6B;IACrD,8EAA8E;IAC9E,OAAO,CAAC,aAAa,CAAmD;IACxE,yFAAyF;IACzF,QAAQ,CAAC,KAAK,SAAc;IAE5B,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC;QAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GACjG,aAAa,GAAG,IAAI;IA6DvB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;CAc7F;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
1
+ {"version":3,"file":"timeline-emitter.d.ts","sourceRoot":"","sources":["../../src/daemon/timeline-emitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAKhH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,QAAQ,CAAyC;IACzD,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB,CAA6B;IACrD,8EAA8E;IAC9E,OAAO,CAAC,aAAa,CAAmD;IACxE,yFAAyF;IACzF,QAAQ,CAAC,KAAK,SAAc;IAE5B,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC;QAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GACjG,aAAa,GAAG,IAAI;IAiEvB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;CAc7F;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -19,11 +19,14 @@ class TimelineEmitter {
19
19
  /** Daemon startup timestamp — changes on restart, used for epoch-based seq continuity */
20
20
  epoch = Date.now();
21
21
  emit(sessionId, type, payload, opts) {
22
- // Deduplicate session.state — skip if state unchanged
22
+ // Deduplicate session.state — skip repeated same-state events to avoid UI flicker,
23
+ // but still return a synthetic event so callers (store updates, idle callbacks) proceed.
23
24
  if (type === 'session.state') {
24
25
  const state = String(payload.state ?? '');
25
- if (this.lastSessionState.get(sessionId) === state)
26
- return null;
26
+ if (this.lastSessionState.get(sessionId) === state) {
27
+ // State unchanged — don't emit to handlers/UI, but return event for caller
28
+ return { eventId: '', sessionId, ts: Date.now(), seq: 0, epoch: this.epoch, source: opts?.source ?? 'daemon', confidence: opts?.confidence ?? 'high', type, payload };
29
+ }
27
30
  this.lastSessionState.set(sessionId, state);
28
31
  }
29
32
  // Deduplicate user.message — skip if same session + same text within 5s
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-emitter.js","sourceRoot":"","sources":["../../src/daemon/timeline-emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timeline-emitter.js","sourceRoot":"","sources":["../../src/daemon/timeline-emitter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imcodes",
3
- "version": "2026.3.64",
3
+ "version": "2026.3.70",
4
4
  "description": "A chat interface for AI coding agents — control Claude Code, Codex, Gemini CLI, OpenCode from browser and mobile",
5
5
  "license": "MIT",
6
6
  "repository": {