Skip to content

Give each connection its own page and list connections as cards - #2247

Draft
leoisadev1 wants to merge 2 commits into
UsefulSoftwareCo:v2from
leoisadev1:leoplayz317/exe-2-rename-connect-to-agents-and-make-the-agent-list-the-main
Draft

leoisadev1 wants to merge 2 commits into
UsefulSoftwareCo:v2from
leoisadev1:leoplayz317/exe-2-rename-connect-to-agents-and-make-the-agent-list-the-main

Conversation

@leoisadev1

@leoisadev1 leoisadev1 commented Oct 9, 2026 •

Copy link
Copy Markdown

Summary

In the local dashboard, a connection was split across three screens. The Connect page put the setup prompt first and listed connections below it. Clicking one opened a read-only detail view. Changing anything meant Edit access, then a separate editor. Now the sidebar's Connect is Connections: a card per connection with a Connect button. Clicking a scoped connection opens one page where you rename it, turn apps on and set their tools in place, and save.

 Sidebar
-  Connect → /connect
+  Connections → /connections
 /connections  (new, local)
+  Full access card (the plain MCP URL) + one card per scoped connection
+  Connect → dialog with Prompt / MCP URL / Command
+  New connection → /connections/new
 /connections/$connectionId  (new, local; replaces detail view + editor)
+  title is the name field
+  "Can use" apps, then "Other apps": checkbox, tools, events, accounts per row
+  search, turn on all matches, assign one account, needs-setup filter
+  Save / Discard bar appears only after a change
+  ⋯ menu: Copy MCP URL, Rename, Revoke connection
 ConnectionAppRow (packages/ui, shared with hosted)
-  repeats an app's only account next to its subtitle
+  optional renderConnectAccount → "Connect account" for apps with none
 ProviderIcon (packages/ui, shared with hosted)
-  17px logo inside a bordered 34px box
+  logo fills a rounded white tile; bordered box only for the fallback

App logos also change everywhere they appear. They used to render at 17px inside a bordered box. Now they fill a rounded white tile, like the integrations catalog.

The old /connect page and the hosted dashboard are unchanged in this PR. If this direction is right, the next step is moving the page into the shared ScopedConnectionsPage so hosted gets it too.

Evidence

Real local data: the full-access URL and two scoped connections, Support assistant and Release bot.

Before After
Before: Connect page After: Connections cards
Before: Release bot detail view After: Release bot page
Before: Edit access editor After: tools set right on the row
Before: new scoped connection After: new connection
Before, mobile After, mobile
Before: Connect page on mobile After: Connections on mobile
Before: editor on mobile After: connection page on mobile
Logos before Logos after
Before: small logos inside bordered boxes After: logos fill their tiles
After: Apps page, dark After: Apps page, light
After: specific tools After: ⋯ menu
Specific tools picker open on Executor with two tools ticked Menu with Copy MCP URL, Rename and Revoke connection
After: Connect dialog After: app with no account turned on
Connect dialog for Release bot GitHub turned on, needs an account, Save disabled
  • Saving works end to end: switched Release bot's Executor tools from Read-only to All tools, saved, reloaded, and the change held. Switched it back the same way.
  • In the tools picker, Select under the Read filter selects only the 45 read tools (45 of 81).
  • Rename focuses and selects the title. Revoke asks for confirmation. "Connect account" opens the app's Accounts tab.
  • No horizontal overflow at 390px on the list or the connection page.
  • bun run format:check, bun run lint, bun run typecheck and the no-unit-tests check pass. patches:check fails on its own fixtures on v2 as well; this PR doesn't touch patches.
  • On self-host, "Members create and revoke a scoped connection from the dashboard" passes. It drives the hosted editor through the shared app row this PR changes.
  • An independent GPT-6.1 Sol review found that the "Connect account" link was inside the row's <label>, so following it could toggle the app. Fixed: the link now sits outside the label.

Not covered: the hosted dashboard in a browser. It shares the app row and logo changes but was not screenshotted; the self-host scenario above runs through it.

mcp-connections.spec.ts
local-mcp-connections.spec.ts

Merge Danger

Door: two-way. UI only; no stored data, API or migration changes.

Blast radius: the local dashboard's Connections pages, the app row in the hosted connection editor, and every app logo in both dashboards. If it's wrong, an app row shows the wrong account text, or "Connect account" leaves the page and drops unsaved edits (it does today, without a warning).

Created with Claude Opus 5.5 in T3 Code.

leoisadev1 and others added 2 commits October 9, 2026 15:55
The sidebar's Connect becomes Connections. The list shows the full-access URL
and each scoped connection as a card with a Connect button. Clicking a scoped
card opens one page that replaces the old detail view and editor: the name is
edited in place, apps are turned on and scoped right on their rows, and Save
appears only after a change. Copy MCP URL, Rename and Revoke sit in a menu.

The shared app row no longer repeats an app's only account next to its
subtitle, and can show a host link to connect an account when an app has none.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Logos rendered at 17px inside a bordered 34px box. They now fill a rounded
white tile with a hairline edge, like the integrations catalog, fetched at a
size that stays sharp in the largest tile. The package fallback keeps its
bordered box. Pages that shrank the logo image inside the tile no longer do.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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.

1 participant