@codedeck/codedeck 2026.3.35 → 2026.3.39

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.
@@ -18,6 +18,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.claudeProjectDir = claudeProjectDir;
21
+ exports.preClaimFile = preClaimFile;
21
22
  exports.startWatching = startWatching;
22
23
  exports.isWatching = isWatching;
23
24
  exports.stopWatching = stopWatching;
@@ -224,7 +225,8 @@ function extractToolInput(tool, input) {
224
225
  const watchers = new Map();
225
226
  /** Which session has claimed each JSONL file path (prevents cross-session stealing). */
226
227
  const claimedFiles = new Map(); // filePath → sessionName
227
- function claimFile(sessionName, filePath) {
228
+ /** Manually claim a file for a session (prevents directory scan from stealing it). */
229
+ function preClaimFile(sessionName, filePath) {
228
230
  // Release any previous file claimed by this session
229
231
  for (const [fp, sn] of claimedFiles) {
230
232
  if (sn === sessionName) {
@@ -294,8 +296,17 @@ async function emitRecentHistory(sessionName, filePath) {
294
296
  }
295
297
  }
296
298
  }
299
+ // Track absolute byte offset in file for stable eventId generation.
300
+ // Stable IDs ensure duplicate re-emissions across daemon restarts are
301
+ // deduplicated by the browser's mergeEvents (which deduplicates by eventId).
302
+ let bytePos = size - readSize;
303
+ for (let i = 0; i < startIdx; i++) {
304
+ bytePos += Buffer.byteLength(lines[i], 'utf8') + 1; // +1 for \n
305
+ }
297
306
  let count = 0;
298
307
  for (let i = startIdx; i < lines.length && count < HISTORY_LINES; i++) {
308
+ const lineBytePos = bytePos;
309
+ bytePos += Buffer.byteLength(lines[i], 'utf8') + 1;
299
310
  const line = lines[i];
300
311
  if (!line.trim())
301
312
  continue;
@@ -310,25 +321,27 @@ async function emitRecentHistory(sessionName, filePath) {
310
321
  const content = msg?.['content'];
311
322
  if (!Array.isArray(content))
312
323
  continue;
324
+ let blockIdx = 0;
325
+ const stableId = (suffix) => `cc:${sessionName}:${lineBytePos}:${suffix}:${blockIdx++}`;
313
326
  if (raw['type'] === 'assistant') {
314
327
  for (const block of content) {
315
328
  if (block.type === 'text' && block.text) {
316
329
  timeline_emitter_js_1.timelineEmitter.emit(sessionName, 'assistant.text', {
317
330
  text: block.text, streaming: false,
318
- }, { source: 'daemon', confidence: 'high' });
331
+ }, { source: 'daemon', confidence: 'high', eventId: stableId('at') });
319
332
  count++;
320
333
  }
321
334
  else if (block.type === 'thinking' && block.thinking) {
322
335
  timeline_emitter_js_1.timelineEmitter.emit(sessionName, 'assistant.thinking', {
323
336
  text: block.thinking,
324
- }, { source: 'daemon', confidence: 'high' });
337
+ }, { source: 'daemon', confidence: 'high', eventId: stableId('th') });
325
338
  count++;
326
339
  }
327
340
  else if (block.type === 'tool_use' && block.name) {
328
341
  const input = extractToolInput(block.name, block.input);
329
342
  timeline_emitter_js_1.timelineEmitter.emit(sessionName, 'tool.call', {
330
343
  tool: block.name, ...(input ? { input } : {}),
331
- }, { source: 'daemon', confidence: 'high' });
344
+ }, { source: 'daemon', confidence: 'high', eventId: stableId('tc') });
332
345
  count++;
333
346
  }
334
347
  }
@@ -338,14 +351,14 @@ async function emitRecentHistory(sessionName, filePath) {
338
351
  if (block.type === 'text' && block.text?.trim()) {
339
352
  timeline_emitter_js_1.timelineEmitter.emit(sessionName, 'user.message', {
340
353
  text: block.text,
341
- }, { source: 'daemon', confidence: 'high' });
354
+ }, { source: 'daemon', confidence: 'high', eventId: stableId('um') });
342
355
  count++;
343
356
  }
344
357
  else if (block.type === 'tool_result') {
345
358
  const error = block.is_error ? String(block.content ?? 'error') : undefined;
346
359
  timeline_emitter_js_1.timelineEmitter.emit(sessionName, 'tool.result', {
347
360
  ...(error ? { error } : {}),
348
- }, { source: 'daemon', confidence: 'high' });
361
+ }, { source: 'daemon', confidence: 'high', eventId: stableId('tr') });
349
362
  count++;
350
363
  }
351
364
  }
@@ -389,7 +402,7 @@ async function startWatching(sessionName, workDir) {
389
402
  // start with no active file and wait for a new one to appear.
390
403
  const latest = await findLatestJsonl(projectDir);
391
404
  if (latest && canClaim(sessionName, latest)) {
392
- claimFile(sessionName, latest);
405
+ preClaimFile(sessionName, latest);
393
406
  try {
394
407
  const s = await (0, promises_1.stat)(latest);
395
408
  state.activeFile = latest;
@@ -437,7 +450,7 @@ async function startWatchingFile(sessionName, filePath) {
437
450
  }
438
451
  // Pre-claim the file path immediately — before the file even exists — so that
439
452
  // the main session's watchDir cannot steal it when CC creates the file.
440
- claimFile(sessionName, filePath);
453
+ preClaimFile(sessionName, filePath);
441
454
  // Derive projectDir from filePath (parent directory)
442
455
  const projectDir = (0, path_1.dirname)(filePath);
443
456
  const state = {
@@ -455,7 +468,7 @@ async function startWatchingFile(sessionName, filePath) {
455
468
  const s = await (0, promises_1.stat)(filePath);
456
469
  state.activeFile = filePath;
457
470
  state.fileOffset = s.size; // start from end (only new content)
458
- claimFile(sessionName, filePath);
471
+ preClaimFile(sessionName, filePath);
459
472
  appeared = true;
460
473
  break;
461
474
  }
@@ -529,12 +542,12 @@ async function watchDir(sessionName, state) {
529
542
  const isNewer = await checkNewer(changedFile, state.activeFile);
530
543
  if (isNewer) {
531
544
  logger_js_1.default.debug({ sessionName, file: event.filename }, 'jsonl-watcher: switching to new JSONL file');
532
- claimFile(sessionName, changedFile);
545
+ preClaimFile(sessionName, changedFile);
533
546
  state.activeFile = changedFile;
534
547
  state.fileOffset = 0;
535
548
  }
536
549
  else if (!state.activeFile) {
537
- claimFile(sessionName, changedFile);
550
+ preClaimFile(sessionName, changedFile);
538
551
  state.activeFile = changedFile;
539
552
  state.fileOffset = 0;
540
553
  }
@@ -588,7 +601,7 @@ async function pollTick(sessionName, state) {
588
601
  .filter((x) => x !== null)
589
602
  .sort((a, b) => b.mtime - a.mtime)[0];
590
603
  if (best) {
591
- claimFile(sessionName, best.fp);
604
+ preClaimFile(sessionName, best.fp);
592
605
  state.activeFile = best.fp;
593
606
  try {
594
607
  state.fileOffset = (await (0, promises_1.stat)(best.fp)).size;
@@ -1 +1 @@
1
- {"version":3,"file":"jsonl-watcher.js","sourceRoot":"","sources":["../../src/daemon/jsonl-watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsonl-watcher.js","sourceRoot":"","sources":["../../src/daemon/jsonl-watcher.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * Sub-session manager — creates/stops/rebuilds tmux sessions for sub-sessions.
3
- * Sub-sessions are named deck_sub_{id} and can run claude-code, codex, opencode, or shell.
4
3
  */
5
4
  export interface SubSessionRecord {
6
5
  id: string;
@@ -8,28 +7,18 @@ export interface SubSessionRecord {
8
7
  shellBin?: string | null;
9
8
  cwd?: string | null;
10
9
  ccSessionId?: string | null;
10
+ codexSessionId?: string | null;
11
11
  codexModel?: string | null;
12
12
  geminiSessionId?: string | null;
13
13
  fresh?: boolean;
14
- /** Pre-launch file snapshot for snapshot-diff based file discovery (internal) */
15
14
  _fileSnapshot?: Set<string>;
16
- /** Callback when Gemini session ID is discovered from new file (internal) */
17
15
  _onGeminiDiscovered?: (sessionId: string) => void;
18
16
  }
19
17
  export declare function subSessionName(id: string): string;
20
- /** Launch a sub-session tmux session. */
21
18
  export declare function startSubSession(sub: SubSessionRecord): Promise<void>;
22
- /** Kill a sub-session tmux session. */
23
19
  export declare function stopSubSession(sessionName: string): Promise<void>;
24
- /** Rebuild all active sub-sessions that are not currently running.
25
- * For already-running CC/Codex sub-sessions, ensure the JSONL watcher is active. */
26
20
  export declare function rebuildSubSessions(subSessions: SubSessionRecord[]): Promise<void>;
27
- /** Detect available shell binaries. */
28
21
  export declare function detectShells(): Promise<string[]>;
29
- /**
30
- * Read the last response from a sub-session after idle.
31
- * Returns { status: 'working' } if not idle, or { status: 'idle', response: string } if idle.
32
- */
33
22
  export declare function readSubSessionResponse(sessionName: string): Promise<{
34
23
  status: 'working' | 'idle';
35
24
  response?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"subsession-manager.d.ts","sourceRoot":"","sources":["../../src/daemon/subsession-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,yCAAyC;AACzC,wBAAsB,eAAe,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqG1E;AAED,uCAAuC;AACvC,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASvE;AAED;qFACqF;AACrF,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDvF;AAoDD,uCAAuC;AACvC,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAsBtD;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA2B5D"}
1
+ {"version":3,"file":"subsession-manager.d.ts","sourceRoot":"","sources":["../../src/daemon/subsession-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAA6B;AAE/E,wBAAsB,eAAe,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C1E;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKvE;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BvF;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAatD;AAED,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAc5H"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Sub-session manager — creates/stops/rebuilds tmux sessions for sub-sessions.
4
- * Sub-sessions are named deck_sub_{id} and can run claude-code, codex, opencode, or shell.
5
4
  */
6
5
  var __importDefault = (this && this.__importDefault) || function (mod) {
7
6
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -19,246 +18,120 @@ const timeline_store_js_1 = require("./timeline-store.js");
19
18
  const session_store_js_1 = require("../store/session-store.js");
20
19
  const node_fs_1 = require("node:fs");
21
20
  const node_path_1 = __importDefault(require("node:path"));
22
- const logger_js_1 = __importDefault(require("../util/logger.js"));
23
- function subSessionName(id) {
24
- return `deck_sub_${id}`;
25
- }
26
- /** Launch a sub-session tmux session. */
21
+ function subSessionName(id) { return `deck_sub_${id}`; }
27
22
  async function startSubSession(sub) {
28
23
  const sessionName = subSessionName(sub.id);
29
24
  const agentType = sub.type;
30
25
  const driver = (0, session_manager_js_1.getDriver)(agentType);
31
- const exists = await (0, tmux_js_1.sessionExists)(sessionName);
32
- if (exists) {
33
- logger_js_1.default.info({ sessionName }, 'Sub-session already running');
26
+ if (await (0, tmux_js_1.sessionExists)(sessionName))
34
27
  return;
28
+ // For Codex: generate explicit UUID before launch to ensure perfect isolation
29
+ let codexSessionId = sub.codexModel ? undefined : undefined; // placeholder for logic
30
+ if (agentType === 'codex') {
31
+ const { randomUUID } = await import('node:crypto');
32
+ sub.codexSessionId = sub.codexSessionId ?? randomUUID();
35
33
  }
36
34
  const launchCmd = driver.buildLaunchCommand(sessionName, {
37
35
  cwd: sub.cwd ?? undefined,
38
36
  ...(sub.shellBin ? { shellBin: sub.shellBin } : {}),
39
37
  ...(sub.ccSessionId ? { ccSessionId: sub.ccSessionId } : {}),
40
38
  ...(sub.codexModel ? { codexModel: sub.codexModel } : {}),
39
+ ...(sub.codexSessionId ? { codexSessionId: sub.codexSessionId ?? undefined } : {}),
41
40
  ...(sub.geminiSessionId ? { geminiSessionId: sub.geminiSessionId } : {}),
42
41
  ...(sub.fresh ? { fresh: true } : {}),
43
42
  });
44
43
  await (0, tmux_js_1.newSession)(sessionName, launchCmd, { cwd: sub.cwd ?? undefined });
45
- // Register in session-store so command-handler can look up agentType (e.g. for Codex delayed-Enter)
46
- // ccSessionId is stored so that restoreFromStore can use startWatchingFile (not directory scan) if needed.
47
- (0, session_store_js_1.upsertSession)({ name: sessionName, projectName: sessionName, agentType: sub.type, role: 'w1', state: 'running', projectDir: sub.cwd ?? '', ccSessionId: sub.ccSessionId ?? undefined, restarts: 0, restartTimestamps: [], createdAt: Date.now(), updatedAt: Date.now() });
48
- logger_js_1.default.info({ sessionName, type: sub.type }, 'Sub-session started');
49
- // Kick off pipe-pane for any browsers that subscribed before the tmux session existed
50
- const { terminalStreamer } = await import('./terminal-streamer.js');
51
- terminalStreamer.retryPipeIfSubscribers(sessionName);
52
- // Start JSONL watcher for CC sub-sessions pointing at specific file
44
+ (0, session_store_js_1.upsertSession)({
45
+ name: sessionName, projectName: sessionName, agentType: sub.type, role: 'w1', state: 'running',
46
+ projectDir: sub.cwd ?? '', ccSessionId: sub.ccSessionId ?? undefined,
47
+ codexSessionId: sub.codexSessionId ?? undefined,
48
+ restarts: 0, restartTimestamps: [], createdAt: Date.now(), updatedAt: Date.now()
49
+ });
50
+ // Start Watchers
53
51
  if (agentType === 'claude-code' && sub.ccSessionId && sub.cwd) {
54
52
  const { startWatchingFile, claudeProjectDir } = await import('./jsonl-watcher.js');
55
- const projectDir = claudeProjectDir(sub.cwd);
56
- const jsonlPath = node_path_1.default.join(projectDir, `${sub.ccSessionId}.jsonl`);
57
- startWatchingFile(sessionName, jsonlPath).catch((e) => logger_js_1.default.warn({ err: e, sessionName }, 'jsonl-watcher startWatchingFile failed'));
53
+ startWatchingFile(sessionName, node_path_1.default.join(claudeProjectDir(sub.cwd), `${sub.ccSessionId}.jsonl`));
58
54
  }
59
- // Start gemini watcher for gemini sub-sessions
60
- if (agentType === 'gemini') {
61
- if (sub.geminiSessionId) {
62
- const { startWatching } = await import('./gemini-watcher.js');
63
- startWatching(sessionName, sub.geminiSessionId).catch((e) => logger_js_1.default.warn({ err: e, sessionName }, 'gemini-watcher startWatching failed'));
64
- }
65
- else if (sub._fileSnapshot) {
66
- // resolveSessionId failed — use snapshot diff to find the new file
67
- const { startWatchingNew } = await import('./gemini-watcher.js');
68
- startWatchingNew(sessionName, sub._fileSnapshot, (sessionId, _filePath) => {
69
- logger_js_1.default.info({ sessionName, sessionId }, 'Discovered Gemini session ID from new file');
70
- // Persist via onGeminiDiscovered callback if provided
71
- sub._onGeminiDiscovered?.(sessionId);
72
- }).catch((e) => logger_js_1.default.warn({ err: e, sessionName }, 'gemini-watcher startWatchingNew failed'));
73
- }
74
- else {
75
- const { startWatchingLatest } = await import('./gemini-watcher.js');
76
- startWatchingLatest(sessionName).catch((e) => logger_js_1.default.warn({ err: e, sessionName }, 'gemini-watcher startWatchingLatest failed'));
77
- }
55
+ else if (agentType === 'codex' && sub.codexSessionId) {
56
+ const { startWatchingById } = await import('./codex-watcher.js');
57
+ void startWatchingById(sessionName, sub.codexSessionId, sub.codexModel ?? undefined);
78
58
  }
79
- // Start codex JSONL watcher for codex sub-sessions.
80
- // Start dir-scan watcher immediately (for history), then async-capture the UUID
81
- // of the specific rollout file Codex creates for this launch and switch to it,
82
- // so that multiple sub-sessions with the same cwd don't permanently share the same file.
83
- if (agentType === 'codex' && sub.cwd) {
84
- const cwd = sub.cwd;
85
- const model = sub.codexModel ?? undefined;
86
- const launchTime = Date.now();
87
- const { startWatching: startCodexWatching } = await import('./codex-watcher.js');
88
- startCodexWatching(sessionName, cwd, model).catch((e) => logger_js_1.default.warn({ err: e, sessionName }, 'codex-watcher startWatching failed'));
89
- // Async: wait for the specific rollout file and switch to it
90
- void (async () => {
91
- try {
92
- const { extractNewRolloutUuid, findRolloutPathByUuid, startWatchingSpecificFile, stopWatching } = await import('./codex-watcher.js');
93
- const uuid = await extractNewRolloutUuid(cwd, launchTime);
94
- if (!uuid)
95
- return; // timed out — keep dir-scan watcher
96
- const rolloutPath = await findRolloutPathByUuid(uuid);
97
- if (!rolloutPath)
98
- return;
99
- stopWatching(sessionName);
100
- await startWatchingSpecificFile(sessionName, rolloutPath, model);
101
- logger_js_1.default.info({ sessionName, uuid, rolloutPath }, 'Codex sub-session switched to specific rollout file');
102
- }
103
- catch (e) {
104
- logger_js_1.default.warn({ err: e, sessionName }, 'Codex sub-session UUID capture failed');
105
- }
106
- })();
107
- }
108
- if (driver.postLaunch) {
109
- const { capturePane, sendKey } = await import('../agent/tmux.js');
110
- driver.postLaunch(() => capturePane(sessionName), (key) => sendKey(sessionName, key)).catch((e) => logger_js_1.default.warn({ err: e, sessionName }, 'Sub-session postLaunch failed'));
59
+ else if (agentType === 'gemini' && sub.geminiSessionId) {
60
+ const { startWatching } = await import('./gemini-watcher.js');
61
+ startWatching(sessionName, sub.geminiSessionId);
111
62
  }
112
63
  }
113
- /** Kill a sub-session tmux session. */
114
64
  async function stopSubSession(sessionName) {
115
65
  await (0, tmux_js_1.killSession)(sessionName).catch(() => { });
116
- const { stopWatching } = await import('./jsonl-watcher.js');
117
- stopWatching(sessionName);
118
- const { stopWatching: stopCodexWatching } = await import('./codex-watcher.js');
119
- stopCodexWatching(sessionName);
120
- const { stopWatching: stopGeminiWatching } = await import('./gemini-watcher.js');
121
- stopGeminiWatching(sessionName);
122
- logger_js_1.default.info({ sessionName }, 'Sub-session stopped');
66
+ (await import('./jsonl-watcher.js')).stopWatching(sessionName);
67
+ (await import('./codex-watcher.js')).stopWatching(sessionName);
68
+ (await import('./gemini-watcher.js')).stopWatching(sessionName);
123
69
  }
124
- /** Rebuild all active sub-sessions that are not currently running.
125
- * For already-running CC/Codex sub-sessions, ensure the JSONL watcher is active. */
126
70
  async function rebuildSubSessions(subSessions) {
127
71
  const { startWatchingFile, claudeProjectDir, isWatching } = await import('./jsonl-watcher.js');
128
- const { startWatching: startCodexWatching, isWatching: isCodexWatching } = await import('./codex-watcher.js');
129
- const { startWatching: startGeminiWatching, startWatchingLatest: startGeminiWatchingLatest, isWatching: isGeminiWatching } = await import('./gemini-watcher.js');
72
+ const { startWatchingById, isWatching: isCodexWatching, isFileClaimedByOther } = await import('./codex-watcher.js');
73
+ const { startWatching: startGeminiWatching, isWatching: isGeminiWatching } = await import('./gemini-watcher.js');
130
74
  for (const sub of subSessions) {
131
75
  const sessionName = subSessionName(sub.id);
132
76
  const exists = await (0, tmux_js_1.sessionExists)(sessionName);
133
77
  if (!exists) {
134
- await startSubSession(sub).catch((e) => logger_js_1.default.warn({ err: e, sessionName }, 'Sub-session rebuild failed'));
135
- }
136
- else if (sub.type === 'claude-code' && sub.ccSessionId && sub.cwd && !isWatching(sessionName)) {
137
- // Already running — restore the JSONL watcher (lost on daemon restart)
138
- const projectDir = claudeProjectDir(sub.cwd);
139
- const jsonlPath = node_path_1.default.join(projectDir, `${sub.ccSessionId}.jsonl`);
140
- startWatchingFile(sessionName, jsonlPath).catch((e) => logger_js_1.default.warn({ err: e, sessionName }, 'Sub-session watcher restore failed'));
141
- logger_js_1.default.info({ sessionName, jsonlPath }, 'Restored JSONL watcher for running sub-session');
78
+ await startSubSession(sub).catch(() => { });
142
79
  }
143
- else if (sub.type === 'codex' && sub.cwd && !isCodexWatching(sessionName)) {
144
- // Already running — restore the codex JSONL watcher (lost on daemon restart)
145
- startCodexWatching(sessionName, sub.cwd, sub.codexModel ?? undefined).catch((e) => logger_js_1.default.warn({ err: e, sessionName }, 'Codex watcher restore failed'));
146
- logger_js_1.default.info({ sessionName }, 'Restored codex JSONL watcher for running sub-session');
147
- }
148
- else if (sub.type === 'gemini' && !isGeminiWatching(sessionName)) {
149
- // Already running — restore the gemini watcher (lost on daemon restart)
150
- // Try stored UUID first, then extract from process args, then fall back to latest
151
- let uuid = sub.geminiSessionId ?? null;
152
- if (!uuid) {
153
- uuid = await extractGeminiUuidFromProcess(sessionName);
154
- if (uuid) {
155
- logger_js_1.default.info({ sessionName, geminiSessionId: uuid }, 'Extracted Gemini UUID from process args');
156
- }
157
- }
158
- if (uuid) {
159
- startGeminiWatching(sessionName, uuid).catch((e) => logger_js_1.default.warn({ err: e, sessionName }, 'Gemini watcher restore failed'));
80
+ else {
81
+ const stored = (0, session_store_js_1.getSession)(sessionName);
82
+ if (sub.type === 'claude-code' && sub.ccSessionId && sub.cwd && !isWatching(sessionName)) {
83
+ startWatchingFile(sessionName, node_path_1.default.join(claudeProjectDir(sub.cwd), `${sub.ccSessionId}.jsonl`));
160
84
  }
161
- else {
162
- startGeminiWatchingLatest(sessionName).catch((e) => logger_js_1.default.warn({ err: e, sessionName }, 'Gemini watcher restore failed'));
85
+ else if (sub.type === 'codex' && !isCodexWatching(sessionName)) {
86
+ const uuid = stored?.codexSessionId;
87
+ if (uuid && !isFileClaimedByOther(sessionName, uuid)) {
88
+ startWatchingById(sessionName, uuid, sub.codexModel ?? undefined);
89
+ }
163
90
  }
164
- logger_js_1.default.info({ sessionName, geminiSessionId: uuid }, 'Restored gemini watcher for running sub-session');
165
- }
166
- // Ensure agentType is in session-store for all running sub-sessions (needed by command-handler)
167
- if (exists) {
168
- (0, session_store_js_1.upsertSession)({ name: sessionName, projectName: sessionName, agentType: sub.type, role: 'w1', state: 'running', projectDir: sub.cwd ?? '', ccSessionId: sub.ccSessionId ?? undefined, restarts: 0, restartTimestamps: [], createdAt: Date.now(), updatedAt: Date.now() });
169
- }
170
- }
171
- }
172
- /**
173
- * Extract the Gemini --resume UUID from a running tmux session's process tree.
174
- * Returns the UUID string, or null if not found or if it's 'latest'.
175
- */
176
- async function extractGeminiUuidFromProcess(sessionName) {
177
- try {
178
- const { execFile: execFileCb } = await import('node:child_process');
179
- const { promisify } = await import('node:util');
180
- const execFileAsync = promisify(execFileCb);
181
- // Get pane PID from tmux
182
- const { stdout: panePid } = await execFileAsync('tmux', ['display', '-t', sessionName, '-p', '#{pane_pid}']);
183
- const pid = panePid.trim();
184
- if (!pid)
185
- return null;
186
- // Find gemini process in the process tree (child or grandchild)
187
- // Use ps to get all descendants and their command lines
188
- const { stdout: psOut } = await execFileAsync('ps', ['--ppid', pid, '-o', 'pid=,args=', '--no-headers']).catch(() => ({ stdout: '' }));
189
- const checkLine = (line) => {
190
- if (!line.includes('gemini'))
191
- return null;
192
- const match = line.match(/--resume\s+([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/i);
193
- return match ? match[1] : null;
194
- };
195
- for (const line of psOut.split('\n')) {
196
- const uuid = checkLine(line);
197
- if (uuid)
198
- return uuid;
199
- // Check grandchildren
200
- const childPid = line.trim().split(/\s+/)[0];
201
- if (!childPid)
202
- continue;
203
- const { stdout: grandPs } = await execFileAsync('ps', ['--ppid', childPid, '-o', 'pid=,args=', '--no-headers']).catch(() => ({ stdout: '' }));
204
- for (const gline of grandPs.split('\n')) {
205
- const guuid = checkLine(gline);
206
- if (guuid)
207
- return guuid;
91
+ else if (sub.type === 'gemini' && !isGeminiWatching(sessionName)) {
92
+ if (sub.geminiSessionId)
93
+ startGeminiWatching(sessionName, sub.geminiSessionId);
208
94
  }
95
+ (0, session_store_js_1.upsertSession)({
96
+ name: sessionName, projectName: sessionName, agentType: sub.type, role: 'w1', state: 'running',
97
+ projectDir: sub.cwd ?? '', ccSessionId: sub.ccSessionId ?? undefined,
98
+ codexSessionId: stored?.codexSessionId,
99
+ restarts: 0, restartTimestamps: [], createdAt: Date.now(), updatedAt: Date.now()
100
+ });
209
101
  }
210
102
  }
211
- catch {
212
- // best-effort
213
- }
214
- return null;
215
103
  }
216
- /** Detect available shell binaries. */
217
104
  async function detectShells() {
218
105
  const CANDIDATES = ['fish', 'zsh', 'bash', 'sh'];
219
106
  const SEARCH_PATHS = ['/opt/homebrew/bin', '/usr/local/bin', '/usr/bin', '/bin'];
220
107
  const shells = [];
221
- // Include process.env.SHELL first if it exists
222
108
  const envShell = process.env.SHELL;
223
- if (envShell && (0, node_fs_1.existsSync)(envShell) && !shells.includes(envShell)) {
109
+ if (envShell && (0, node_fs_1.existsSync)(envShell))
224
110
  shells.push(envShell);
225
- }
226
111
  for (const dir of SEARCH_PATHS) {
227
112
  for (const candidate of CANDIDATES) {
228
113
  const full = `${dir}/${candidate}`;
229
- if ((0, node_fs_1.existsSync)(full) && !shells.includes(full)) {
114
+ if ((0, node_fs_1.existsSync)(full) && !shells.includes(full))
230
115
  shells.push(full);
231
- }
232
116
  }
233
117
  }
234
118
  return shells;
235
119
  }
236
- /**
237
- * Read the last response from a sub-session after idle.
238
- * Returns { status: 'working' } if not idle, or { status: 'idle', response: string } if idle.
239
- */
240
120
  async function readSubSessionResponse(sessionName) {
241
121
  const { capturePane } = await import('../agent/tmux.js');
242
122
  const { detectStatus } = await import('../agent/detect.js');
243
123
  const lines = await capturePane(sessionName).catch(() => []);
244
- const exists = await (0, tmux_js_1.sessionExists)(sessionName);
245
- if (!exists)
124
+ if (!(await (0, tmux_js_1.sessionExists)(sessionName)))
246
125
  return { status: 'idle', response: '' };
247
- // Look up actual agent type from session store (set by startSubSession/rebuildSubSessions)
248
126
  const { getSession } = await import('../store/session-store.js');
249
- const sessionRecord = getSession(sessionName);
250
- const agentType = (sessionRecord?.agentType ?? 'shell');
251
- const status = detectStatus(lines, agentType);
127
+ const record = getSession(sessionName);
128
+ const status = detectStatus(lines, (record?.agentType ?? 'shell'));
252
129
  if (status !== 'idle')
253
130
  return { status: 'working' };
254
- // Read from timeline store: find events after last user.message
255
131
  const events = timeline_store_js_1.timelineStore.read(sessionName);
256
132
  const lastUserMsgIdx = events.map((e) => e.type).lastIndexOf('user.message');
257
133
  const responseEvents = lastUserMsgIdx >= 0 ? events.slice(lastUserMsgIdx + 1) : events;
258
- const textParts = responseEvents
259
- .filter((e) => e.type === 'assistant.text')
260
- .map((e) => String(e.payload.text ?? ''));
261
- const response = textParts.length > 0 ? textParts.join('\n') : lines.join('\n');
262
- return { status: 'idle', response };
134
+ const textParts = responseEvents.filter((e) => e.type === 'assistant.text').map((e) => String(e.payload.text ?? ''));
135
+ return { status: 'idle', response: textParts.length > 0 ? textParts.join('\n') : lines.join('\n') };
263
136
  }
264
137
  //# sourceMappingURL=subsession-manager.js.map