feat(desktop): steer the live run from the composer

The desktop app could only queue while busy — `/steer` was in the palette
but had no first-class affordance, so the "nudge the agent mid-turn without
interrupting" lane was effectively unreachable.

Add a steer action to the composer: while busy with a text-only draft, a
steering-wheel button (and Cmd/Ctrl+Enter) injects the text into the live
turn via the `session.steer` RPC — the gateway folds it into the next tool
result so the model reads it on its next iteration. Plain Enter still queues.

steerPrompt returns false when the gateway has no live tool window (or the
RPC errors), and the composer re-queues the words so nothing is lost — the
same safety net as a plain queue.
This commit is contained in:
Brooklyn Nicholson
2026-06-05 20:50:30 -05:00
parent e375c33f70
commit 40aef6af91
12 changed files with 187 additions and 8 deletions
+2
View File
@@ -83,6 +83,7 @@ import {
IconAdjustmentsHorizontal as SlidersHorizontal,
IconSparkles as Sparkles,
IconSquare as Square,
IconSteeringWheel as SteeringWheel,
IconSun as Sun,
IconTerminal2 as Terminal,
IconTrash as Trash2,
@@ -183,6 +184,7 @@ export {
SlidersHorizontal,
Sparkles,
Square,
SteeringWheel,
Sun,
Terminal,
Trash2,