diff options
| author | Adam Malczewski <[email protected]> | 2026-06-21 23:04:27 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-21 23:04:27 +0900 |
| commit | e2f7ce2782b46619442d422743ecb8959fd4fc59 (patch) | |
| tree | bb8f21f5f337fb1d8beb2cd5bc154788c33df8f7 /packages | |
| parent | 9797e095b7c268cf2d4e7b8d35a5f04a7d363fb1 (diff) | |
| download | dispatch-e2f7ce2782b46619442d422743ecb8959fd4fc59.tar.gz dispatch-e2f7ce2782b46619442d422743ecb8959fd4fc59.zip | |
fix(cli): fire --open signal before streaming starts, not after
For both 'send' and 'chat' commands, the --open signal now fires
immediately after the conversation ID is known (before stream
consumption), so the frontend opens the tab right away instead of
waiting for the turn to complete.
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/cli/src/main.ts | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/packages/cli/src/main.ts b/packages/cli/src/main.ts index 365096a..6df6e23 100644 --- a/packages/cli/src/main.ts +++ b/packages/cli/src/main.ts @@ -101,6 +101,14 @@ async function main(): Promise<void> { } const conversationId = resolved; + if (parsed.open) { + await openConversation( + { fetchImpl: globalThis.fetch }, + { server: parsed.server, conversationId }, + ); + process.stdout.write(`Signaled frontend to open ${conversationId}\n`); + } + if (parsed.queue) { const queued = await enqueueMessage( { fetchImpl: globalThis.fetch }, @@ -133,14 +141,6 @@ async function main(): Promise<void> { process.stdout.write(`${extractLastText(collected)}\n`); process.stdout.write(`[conversation] ${conversationId}\n`); } - - if (parsed.open) { - await openConversation( - { fetchImpl: globalThis.fetch }, - { server: parsed.server, conversationId }, - ); - process.stdout.write(`Signaled frontend to open ${conversationId}\n`); - } break; } case "chat": { @@ -162,6 +162,14 @@ async function main(): Promise<void> { { server: parsed.server, request }, ); + if (conversationId && parsed.open) { + await openConversation( + { fetchImpl: globalThis.fetch }, + { server: parsed.server, conversationId }, + ); + process.stdout.write(`Signaled frontend to open ${conversationId}\n`); + } + for await (const event of events) { const rendered = renderEvent(event, { showReasoning: parsed.showReasoning }); if (rendered?.stdout) process.stdout.write(rendered.stdout); @@ -170,14 +178,6 @@ async function main(): Promise<void> { if (conversationId) { process.stdout.write(`\n[conversation] ${conversationId}\n`); - - if (parsed.open) { - await openConversation( - { fetchImpl: globalThis.fetch }, - { server: parsed.server, conversationId }, - ); - process.stdout.write(`Signaled frontend to open ${conversationId}\n`); - } } break; } |
