Skip to content

Put Connections and Capabilities beside Bots, with Connections as one list - #818

Merged
guidovizoso merged 1 commit into
mainfrom
guido/plugins-screen
Oct 21, 2026
Merged

guidovizoso merged 1 commit into
mainfrom
guido/plugins-screen

Conversation

@guidovizoso

@guidovizoso guidovizoso commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Stacked on #814 (OB-05). The base is guido/ob-05-connector-states; retarget to main once #814 merges.

What this changes

Sidebar: Bots, Capabilities, Connections. These replace the Skills item, and Settings no longer lists Memory or Connected accounts.

Item Address Was
Connections /connections, one connection at /connections/:key /settings/connected-accounts
Capabilities → Skills /capabilities/skills (/capabilities opens here) /skills
Capabilities → Memory /capabilities/memory /settings/memory

Connections is one searchable list. Every row is a service, and connected ones come first:

  • your own apps (Google Drive, Notion, personal Composio apps);
  • Composio apps on the organisation's account, marked "Team account";
  • your GitHub and Slack links, which used to be the separate "Linked accounts" section.

Each row opens its own page. Rows are built by connectionRows() (app/src/lib/connections/rows.ts), which has its own tests.

  • GitHub's page (/connections/github) shows "Your account" (link or Disconnect) and "Repositories", which was "GitHub events". Where a Composio GitHub app is enabled, the page also has a "Tools" row pointing to it, and that app's own row leaves the list so GitHub appears once.
  • Slack's page (/connections/slack) shows the link, or the one-time code to link it.
  • Back from GitHub: linking GitHub now returns to GitHub's page (/connections/github?linked=…).
  • The shared-Bots reset moves to Settings → Approvals as Shared Bots: "Apps you let shared Bots use · Reset".

Capabilities: the title with Skills and Memory as button tabs underneath. Each tab is a real link with its own address, and the current tab is the filled button, marked aria-current="page".

Home page: the Explore agents carousel shows each Bot as a white card with its avatar on top, the same card style used elsewhere, instead of a blurred avatar filling a grey tile. The card size is unchanged at 144×180.

One column width for every settings screen: PageShell's default goes from max-w-2xl (630px) to max-w-3xl (720px). Settings, Admin, Connections, Capabilities and each Bot's pages are now the same width, and sentences stay at max-w-prose. The component galleries fill the column. The audit log stays wide (it's a table), and the Playground keeps its full-width editor. The openbot-screen-layout skill is updated to match.

Old addresses redirect and carry their query along:

  • ?connected= and ?linked= on Connections;
  • ?new= / ?edit= on Skills;
  • any account beneath /settings/connected-accounts.

A consent begun before upgrading therefore still lands on the right page. The OAuth callback and the Slack "account linked" reply now point at Connections.

How it's built:

  • CapabilitiesShell is a component each tab renders, not a layout route. Skills wraps its whole page, heading included, in the side panel that writes and edits a skill, and a heading drawn by the layout route would stay full width while that panel is open.
  • LinkedAccountSection({ provider }) draws one provider's link. linkedAccountsSectionState takes an optional only filter and is otherwise unchanged.
  • The connection page route sends github and slack to IdentityConnectionPage; every other key is an app, as before. No catalogue app uses either key.

Known trade-offs:

  • Connected accounts' old max-w-4xl is gone. Connections uses the shared 720px, and the two-column grid still fits.
  • A Composio GitHub app on the organisation's account still lists as its own "Team account" row beside the GitHub link row.

Where it runs

  • New state that outlives a request? None. This changes routes, links and screens.
  • What happens on the second replica? Nothing different. Redirects are client-side routes, and the server only changes the path it redirects to.
  • Anything serialised? No.
  • Anything fanned out to a browser? No.
  • New listener, port, or schedule? None.

Boundary and audit

  • Every acting call still goes through the gateway. No API routes changed.
  • No new refusals or failures.
  • Nothing new is trusted from the client.

Changelog

  • "Every settings screen is the same, slightly wider column" and "Capabilities and Connections sit beside Bots in the sidebar" under Unreleased.

Proof

  • Tests:
    • app 1277 pass / 0 fail
    • server 4768 pass / 6 skip / 0 fail
    • linked-accounts.test.tsx 32 pass
  • New tests: connection-rows covers order, team apps, links offered only where possible, handles, reconnect, and GitHub listed once.
  • Format, lint, types: bunx biome format . and bunx biome lint --error-on-warnings . are clean, and tsc --noEmit is clean for app and server.
  • Manual check, local stack:
    • The sidebar shows Bots, Capabilities and Connections.
    • Explore agents on the home page shows white cards with the avatar on top.
    • /connections is one section listing GitHub (@handle, Connected) first, then Google Drive and Notion with Connect.
    • /connections/github shows Your account and Repositories. /connections/slack says linking isn't set up on this deployment, and Slack isn't listed.
    • /capabilities → /capabilities/skills, with the Skills tab current.
    • Settings → Approvals ends with Shared Bots.
    • Every settings screen measures 720px.
    • /skills, /settings/memory and /settings/connected-accounts/notion redirect. /settings/connected-accounts?linked=github lands on Connections and shows "Your GitHub account is linked".

@guidovizoso guidovizoso changed the title Put Skills, Connected accounts and Memory on one Plugins screen Put Connections and Capabilities beside Bots, with Connections as one list Oct 21, 2026
@guidovizoso
guidovizoso marked this pull request as ready for review October 21, 2026 20:26
Base automatically changed from guido/ob-05-connector-states to main October 21, 2026 20:45
… list

Connections (/connections) is its own page and one searchable list: your apps, apps on the organisation's account, and your GitHub and Slack links, each opening its own page. Capabilities (/capabilities) holds Skills and Memory as tabs under its title. The sidebar is Bots, Capabilities, Connections. Old addresses under /settings and /skills redirect, carrying their query parameters. Every settings screen shares one 720px column. Explore agents on the home page shows white cards with the avatar on top.
@guidovizoso
guidovizoso merged commit 05cd082 into main Oct 21, 2026
18 checks passed
@guidovizoso
guidovizoso deleted the guido/plugins-screen branch October 21, 2026 20:50
@linear-code

linear-code Bot commented Oct 21, 2026

Copy link
Copy Markdown

FOR-344

pricezone added a commit to pricezone/NoeBot that referenced this pull request Oct 22, 2026
Work-branch stage. Upstream migrations 0057..0060 renumbered to 0066..0069.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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