feat(app): add composer add menu with draft-preserving commands#35711
Merged
Conversation
Convert the composer plus button into a menu offering Images and files, Commands, Context, and Shell command. Each entry reuses the existing attachment, slash, at, and shell flows. When Commands is opened with an empty composer it inserts / and filters inline as before. With an existing draft it opens a dedicated command search field so the draft is preserved: built-in commands run against it and custom commands prefix it as arguments.
anduimagui
pushed a commit
to anduimagui/opencode
that referenced
this pull request
Jul 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue for this PR
Closes #
Type of change
What does this PR do?
Adds an "add" menu to the desktop composer's plus button, matching the Q3 2026 design. The button now opens a menu with four entries that reuse existing flows rather than introducing new command logic:
mod+u).@context flow.!).The Commands entry preserves the composer draft. With an empty composer it behaves exactly like typing
/: it inserts/and filters inline. With existing content (text, attachments, or context) it opens a dedicated command search field so the draft is not destroyed — built-in commands run against the preserved draft, and custom commands prefix the draft as their arguments (e.g.hellobecomes/translate hello).The English UI strings were added and translated across all 17 supported non-English locales, following the per-locale glossaries.
How did you verify your code works?
bun typecheck(workspace-wide via the push hook) — green.bun testprompt-input unit + browser suites (57 tests) — green.bun run build— succeeds.Screenshots / recordings
Screenshot.2026-07-07.at.13.29.03.mp4
Checklist