Reported via beta feedback (v0.5.1, Linux).
The agent proposed a plan, and Orbit rendered it as a plan draft card with Approve / Edit / Reject buttons -- but the agent's prose ignored the card entirely and closed with "Shall I proceed with the plan?". The user is left with two competing affordances (type "yes", or click a button) and no signal about which one the app actually wants.
Why it happens: extensions/loom/context.ts tells the model that the buttons exist ("Orbit renders ```plan fences as an interactive card with Approve / Edit / Reject buttons"), but the approval-gate guidance right below it is written entirely in terms of typed replies -- "The user must signal approval with words like 'yes', 'go', 'approve'...". Nothing steers the closing sentence toward the card, so the model defaults to conversational phrasing.
There's also a plain-drift problem: the card is attached to the fence, so once a long plan scrolls past, the buttons scroll away with it and the user has no way back to them short of scrolling.
The ask: make the plan-approval interaction structurally consistent instead of leaving it to the model's phrasing. Two directions, not mutually exclusive:
- Shell-side (preferred, and shell-neutral for the brain): when a message contains a plan card, Orbit always renders the action row -- Approve / Edit / Reject plus a "Scroll to plan" button -- pinned at the end of that message (or sticky while the plan is the open gate). The affordance stops depending on what the model chose to say.
- Prompt-side nudge: in the plan-lifecycle block in
context.ts, steer the closing line to point at the card ("use the Approve / Edit / Reject buttons below") rather than asking an open question. Should stay conditional on a UI shell being present so the CLI wording doesn't reference buttons that don't exist there.
Typed approval should keep working either way -- this is about making the buttons the obvious path, not the only one.
(Beta tester feedback; details anonymized.)
Reported via beta feedback (v0.5.1, Linux).
The agent proposed a plan, and Orbit rendered it as a plan draft card with Approve / Edit / Reject buttons -- but the agent's prose ignored the card entirely and closed with "Shall I proceed with the plan?". The user is left with two competing affordances (type "yes", or click a button) and no signal about which one the app actually wants.
Why it happens:
extensions/loom/context.tstells the model that the buttons exist ("Orbit renders ```plan fences as an interactive card with Approve / Edit / Reject buttons"), but the approval-gate guidance right below it is written entirely in terms of typed replies -- "The user must signal approval with words like 'yes', 'go', 'approve'...". Nothing steers the closing sentence toward the card, so the model defaults to conversational phrasing.There's also a plain-drift problem: the card is attached to the fence, so once a long plan scrolls past, the buttons scroll away with it and the user has no way back to them short of scrolling.
The ask: make the plan-approval interaction structurally consistent instead of leaving it to the model's phrasing. Two directions, not mutually exclusive:
context.ts, steer the closing line to point at the card ("use the Approve / Edit / Reject buttons below") rather than asking an open question. Should stay conditional on a UI shell being present so the CLI wording doesn't reference buttons that don't exist there.Typed approval should keep working either way -- this is about making the buttons the obvious path, not the only one.
(Beta tester feedback; details anonymized.)