diff options
| author | Adam Malczewski <[email protected]> | 2026-05-23 04:37:56 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-05-23 04:37:56 +0900 |
| commit | ef427d3eae77fca716c203dd8bd84939710c518a (patch) | |
| tree | 4241c489a199f32206cd947bec506701d86bf659 /packages/frontend/src/lib | |
| parent | 80ce5960c479fe35ab72c822e3b67799d7e1491e (diff) | |
| download | dispatch-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.svelte | 4 |
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> |
