summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-21 23:04:27 +0900
committerAdam Malczewski <[email protected]>2026-06-21 23:04:27 +0900
commite2f7ce2782b46619442d422743ecb8959fd4fc59 (patch)
treebb8f21f5f337fb1d8beb2cd5bc154788c33df8f7 /packages
parent9797e095b7c268cf2d4e7b8d35a5f04a7d363fb1 (diff)
downloaddispatch-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.ts32
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;
}