feat: bottom-dock extension dialogs, declutter titles, unlock full extension UIs - #761
Draft
luckrnx09 wants to merge 2 commits into
Draft
feat: bottom-dock extension dialogs, declutter titles, unlock full extension UIs#761luckrnx09 wants to merge 2 commits into
luckrnx09 wants to merge 2 commits into
Conversation
- Render ExtensionDialog and ExtensionCustomPanel as bottom-docked cards above the composer instead of centered overlays, keeping the chat scrollable while a request is open (agegr#679) - Split multi-paragraph request titles: first paragraph stays the header, the rest renders as body text instead of cramming previews and instructions into the title - Debounce the attention sound across chained dialogs (select followed by an input) so one interaction rings once
…ustom UIs Pi Web runs the agent in-process and its uiContext implements custom() via the terminal-rendered panel, but extensions were told mode "rpc", so extensions with rich TUI components (e.g. tabbed questionnaires) degraded to sequential select/input dialogs. Advertise "tui" to unlock their native components.
Contributor
Author
|
@agegr Adapt and extend in the web UI (especially custom terminal UI) is really tricky. How about just using the custom UI from the Terminal? Although its interaction feels quite abrupt compared to web components, it would ensure that the extension's functionality matches TUI without introducing compatibility issues. This PR is just my initial idea and hasn't been fully tested yet. |
luckrnx09
marked this pull request as draft
September 7, 2026 13:53
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.
What
Three interaction fixes for extension UI requests (select/confirm/input/editor + custom panels), reported in #679 and related pain points:
ExtensionDialogandExtensionCustomPanelnow anchor above the composer. The chat stays scrollable while a request is open, so users can re-read context before answering (希望AskUserQuestion,可以换成非弹窗 #679).[header]prefixes) now render the first paragraph as the header and the rest as scrollable body text, instead of cramming everything into the title row.mode: "tui"to extensions — pi-web runs the agent in-process and itsuiContext.custom()is fully implemented (terminal-rendered panel), but extensions were told"rpc", so extensions with rich TUI components (e.g. tabbed multi-question questionnaires with checkboxes) degraded to sequential select/input dialogs. The label now matches actual capabilities, unlocking their native UIs.Verification
npm test(956 pass),eslint,tsc --noEmitcleanCollapsed-pill behavior, keyboard navigation, draft preservation, and Esc semantics are unchanged (covered by existing e2e fixture).