From e2f7ce2782b46619442d422743ecb8959fd4fc59 Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Sun, 21 Jun 2026 23:04:27 +0900 Subject: 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. --- packages/cli/src/main.ts | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'packages') 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 { } 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 { 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 { { 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 { 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; } -- cgit v1.2.3