summaryrefslogtreecommitdiffhomepage
path: root/packages/frontend/src/lib
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-05-23 04:37:56 +0900
committerAdam Malczewski <[email protected]>2026-05-23 04:37:56 +0900
commitef427d3eae77fca716c203dd8bd84939710c518a (patch)
tree4241c489a199f32206cd947bec506701d86bf659 /packages/frontend/src/lib
parent80ce5960c479fe35ab72c822e3b67799d7e1491e (diff)
downloaddispatch-ef427d3eae77fca716c203dd8bd84939710c518a.tar.gz
dispatch-ef427d3eae77fca716c203dd8bd84939710c518a.zip
feat: youtube_transcribe blocks with polling, interruptible with background retrieve
- youtube_transcribe now polls until transcript is ready (waits estimated_seconds - 2s, min 2s) - Times out after 10 minutes of polling - When user interrupts, polling continues in background with youtube_transcribe_<uuid> job ID - BackgroundTranscriptStore holds polling jobs, retrieve tool resolves them - ToolCallDisplay shows 'interrupted' badge (blue) when result contains [USER INTERRUPT] - Applies to all interruptible tools: run_shell, youtube_transcribe, retrieve
Diffstat (limited to 'packages/frontend/src/lib')
-rw-r--r--packages/frontend/src/lib/components/ToolCallDisplay.svelte4
1 files changed, 3 insertions, 1 deletions
diff --git a/packages/frontend/src/lib/components/ToolCallDisplay.svelte b/packages/frontend/src/lib/components/ToolCallDisplay.svelte
index 213ba17..7c7aef6 100644
--- a/packages/frontend/src/lib/components/ToolCallDisplay.svelte
+++ b/packages/frontend/src/lib/components/ToolCallDisplay.svelte
@@ -70,7 +70,9 @@ const summonAgentId = $derived.by(() => {
>Open Tab</button>
{/if}
{#if toolCall.result !== undefined}
- {#if isShell && shellResult !== null}
+ {#if toolCall.result.includes("[USER INTERRUPT]")}
+ <span class="badge badge-info badge-sm ml-auto">interrupted</span>
+ {:else if isShell && shellResult !== null}
<span class="badge badge-sm ml-auto {shellResult.exitCode === 0 ? 'badge-success' : 'badge-error'}">
exit {shellResult.exitCode}
</span>