Replace the opencode command modal with an anchored console#25
Merged
Conversation
The leader-key menu was the last surface still pure upstream: a centered,
scrim-backed fuzzy-list modal titled "Commands", jarringly off-brand against
the terminal command-log home/transcript.
Reskin it as an anchored console that rises flush from the prompt:
- ui/dialog.tsx: give the shared Dialog container anchor ("center" | "bottom")
and scrim options (defaults unchanged, so every other dialog is untouched).
Bottom-anchored + no scrim drops the centered-modal posture while reusing the
existing escape/focus/mode-stack handling.
- overlay command-palette.tsx: replaces upstream wholesale (same export, no
wiring hunk). Gold "AC ›" sigil header, commands grouped by Athena intent
(recall · steer · weave · workspace · system) instead of raw opencode
categories, and a gold caret marks the selection rather than a filled block.
Same command set, dispatch, fuzzy filter and keyboard nav.
dialog-select.tsx is untouched. Verified: TUI typecheck clean, full single
binary build smoke-passed, patch applies cleanly.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The inline command/file autocomplete (typed with "/" or "@") still used the filled gold block-bar selection from upstream opencode. Bring it in line with the new command console: a gold ❯ caret marks the selection with accent-bold text, no filled block. Removes the now-unused selectedForeground import. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Drop the popup's thick ┃ side bars (SplitBorder) and switch its fill from backgroundMenu to backgroundPanel, so the inline autocomplete reads as the same borderless panel surface as the Ctrl+P command console rather than a distinct bordered menu. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Why
The leader-key menu was the last surface still pure upstream opencode: a centered, scrim-backed fuzzy-list modal titled "Commands". Against the terminal command-log home screen and transcript, teleporting into a floating dead-center modal is the jarring "still reeks of opencode" moment.
Scope agreed with the user: anchored console + new style + intent grouping. The prefix router (
@sessions /#memory //files) is a deliberate later phase.What changed
ui/dialog.tsx(the only patch hunk) — gave the sharedDialogcontaineranchor?: "center" | "bottom"+scrim?: booleanoptions. Defaults are unchanged, so every other dialog is untouched. Bottom-anchored + no scrim drops the centered-modal posture and lets the panel rise flush from the prompt, while reusing the existing escape / focus / mode-stack handling.overlay/.../component/command-palette.tsx— overlay-replaces upstream wholesale (sameCommandPaletteDialogexport ⇒ no wiring hunk needed). The console:AC ›sigil header (usesathenaTerminalPrefix), terminal-log voice.recall · steer · weave · workspace · system— mapping upstream categories (Session→recall, Agent/Model/Provider→steer, Prompt/Skills→weave, Workspace/VCS→workspace, rest→system). Recall leads.❯caret marks the selection instead of a filled primary block bar.dialog-select.tsxis untouched.Verification
git apply --checkapplies cleanlytmux capture-pane -pbefore merge.🤖 Generated with Claude Code