Skip to content

feat(tui): queue prompts with option enter - #40922

Merged
kitlangton merged 12 commits into
v2from
tui-prompt-queue
Aug 7, 2026
Merged

kitlangton merged 12 commits into
v2from
tui-prompt-queue

Conversation

@opencode-agent

@opencode-agent opencode-agent Bot commented Aug 6, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • make Enter explicitly steer the active response and Option+Enter / Alt+Enter queue prompts across both TUI composer paths
  • keep steers inline in the transcript while queued work stays in a compact dock attached to the composer
  • summarize the dock as <count> queued · <first prompt> and open the complete ordered queue by clicking it or choosing View queued prompts
  • promote the oldest queued prompt to a steer by pressing Enter on an empty composer
  • promote any selected queued prompt with Enter or delete it with configurable queued_prompt_delete (Ctrl+D by default)
  • click an inline pending steer to move it back to the queue or delete it before promotion
  • persist queue, steer, and cancellation transitions as durable session events, resolve promotion races atomically, and keep all connected clients synchronized
  • expose pending-input queue, steer, and cancel operations through the generated Promise and Effect clients

Validation

  • full workspace push-hook typecheck: 32 packages passed
  • full packages/tui test suite: 597 passed, 5 skipped
  • full packages/client test suite: 51 passed
  • focused packages/core pending-input tests: 41 passed
  • packages/schema event-manifest tests: 6 passed
  • packages/app V2 session reducer tests: 5 passed
  • scoped oxlint: 0 errors
  • OpenCode Drive: labelled end-to-end walkthrough of all queue and pending-steer management behaviors

Full package runs also reproduced two unrelated baseline failures: the core authenticated well-known config priority test and app locale parity for five existing untranslated keys.

Demo

OpenCode Drive with a simulated model response. The prompts and transcript label each behavior:

  1. Option+Enter queues prompts.
  2. Blank Enter steers the oldest queued prompt.
  3. Clicking the dock opens the queue, where Enter steers the selected prompt.
  4. Ctrl+D deletes the selected queued prompt.
  5. Clicking an inline pending steer can move it back to the queue.
  6. Clicking another inline pending steer can delete it.
  7. Blank Enter can steer the re-queued prompt again.
recording-0dee271c-9a47-4cfa-b7a1-7bbc6d9d4b22.mp4

Requested by: @kitlangton (Kit Langton via Slack)

@benjaminbrumbaugh

Copy link
Copy Markdown

Hoping for this in a version soon.

@kitlangton
kitlangton enabled auto-merge (squash) August 7, 2026 14:10
@kitlangton
kitlangton merged commit 8977881 into v2 Aug 7, 2026
9 of 12 checks passed
@kitlangton
kitlangton deleted the tui-prompt-queue branch August 7, 2026 14:22
jinhuang712 pushed a commit to jinhuang712/opencode that referenced this pull request Sep 26, 2026
Co-authored-by: Kit Langton <kit.langton@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants