Repository navigation
feat(app): match the TUI integration dialog in desktop - #56106
opencode-agent[bot] wants to merge 2 commits into
Conversation
The desktop connect dialog now follows the TUI's DialogIntegration: - 'Connect an integration' with MCP, Popular (TUI order) and Services groups - rows show the connected account or N connections, Sign in required, and disable environment-only integrations - OpenCode Go connects with its own methods instead of the Console sign-in - every integration lists its own methods, API keys last, including Console - command auth methods run and stream their output - forms support boolean, multiselect, external link and number fields - account view puts Add account first, signs expired accounts in again, and closes after the last account is removed - every connection continues to that provider's models for the current composer - the model picker gets a Connect an integration entry
There was a problem hiding this comment.
The change looks sound. The packages/app type check passes, and the provider, settings, runtime and composer unit tests pass (389/389, the same as on the base). I couldn't open the desktop dialog in this environment, so I checked the behaviour by reading the code next to the TUI's DialogIntegration rather than by clicking through it. Your demo video covers the visual side.
Public API: no change. This is app-only UI and i18n work. It only uses existing server endpoints (integration.command.*, integration.oauth.*, integration.connect.*).
I have no concerns that would block a merge. OpenCode Go now connects through its own opencode-go methods instead of the Console sign-in, and that fixes the desktop report where it stored a Console credential.
The desktop connect dialog now follows the TUI's
DialogIntegration, which is the reference behavior.What changed
Integration list
Methods
commandmethods (for example well-knownauth.commandlogins) now run. The dialog streams their output while it waits. Before, they were dropped and a fake API key form appeared instead.Auth forms
whenconditions see every earlier answer.Accounts
After connecting
/connect), the chosen model applies to that composer instead of opening a new draft tab.The English copy changed in two places:
command.provider.connectis now "Connect an integration" anddialog.provider.accounts.addis now "Add account". New keys are English only. Keys that are no longer used were removed from every locale.Demo
https://github.com/anomalyco/opencode/releases/download/pr-56106-video/desktop-integration-dialog-tui-parity.mp4
This was recorded from this branch's real desktop dev build (
packages/desktop,bun dev) under Xvfb, with an isolated home.The demo-only data has two parts:
Checks
bun typecheckpasses inpackages/app.providers,settings,runtimeandcomposer, 389 tests.settings.spec.tswere updated for the new behavior.origin/devlocally: the mock/api/integrationreturns 500 in this environment.origin/dev.Requested by: @thdxr (dax via Slack)