Skip to content

feat(extensions): name apps, connections, and MCPs consistently - #3196

Merged
benjaminshafii merged 2 commits into
devfrom
feat/extensions-taxonomy
Jul 27, 2026
Merged

feat(extensions): name apps, connections, and MCPs consistently#3196
benjaminshafii merged 2 commits into
devfrom
feat/extensions-taxonomy

Conversation

@benjaminshafii

Copy link
Copy Markdown
Member

What changed

Extensions rows now say what they actually are, and the page only lists things you have.

  • One vocabulary. app = a runtime on this device (Ollama, Computer Use, OpenWork Browser, Voice Mode). connection = an account (Google Workspace, org-shared MCP accounts). mcp = an MCP server configured in this workspace. Plus skill and plugin. ExtensionCard / ExtensionDetailModal now take a single taxonomy prop instead of the old kind, which mixed data-model kinds ("OpenWork Extension", "UI Control") into user-facing badges.
  • Every one of those is filterable: All · Apps · Connections · MCPs · Skills · Plugins, each with its own URL (/settings/extensions/apps, .../connections, .../mcps, …). The old /settings/extensions/mcp redirects to .../mcps.
  • Local vs account is declared, not guessed. Manifests get surface?: "local" | "cloud" (defaults to local); only Google Workspace declares cloud. That one field drives both the App/Connection split and the "This device" / "OpenWork Cloud" meta line, which previously hard-coded "This device" for every built-in — including Google Workspace.
  • No browse catalog. "Available apps · One-click connect" and the "Add Custom App" hero card are gone. quickConnectEntries now returns built-ins (set up or not, so they can be turned on) plus MCP servers configured here; uninstalled directory entries are not offered. Connections come from the organization.
  • Manual MCP setup moved into Advanced settings ("Add MCP server" + "From GitHub"), and the "Your apps" server-management list is renamed "MCP servers configured here" and hidden when empty, so "app" means one thing on this screen.
  • Deleted the org/quick-connect dedupe helpers that only existed to keep the catalog from double-listing org connections.

Tests

  • pnpm exec tsc --noEmit -p apps/app/tsconfig.json → clean.
  • bun test --isolate tests/ in apps/app462 pass, 0 fail. New tests/extension-taxonomy.test.ts covers the classification and the "only Google Workspace is cloud" invariant; extension-items and settings-route expectations were updated to the new inventory/route behavior.

Proof

Driven through the running app (Vite build, Settings → Extensions) with Playwright.

Inventory with the new chips and badges, Advanced settings expanded — no "Available apps", no "Add Custom App":

Extensions inventory

Apps filter → only local runtimes, each reading "This device":

Apps filter

Connections filter → only account-backed items; Google Workspace correctly reads "OpenWork Cloud":

Connections filter

Console errors seen during the run were ERR_CONNECTION_REFUSED on 127.0.0.1:4096/global/health — the local OpenWork server was not running in this Vite-only setup — and are unrelated to this change.

No fraimz run: this is the desktop Settings surface and was validated directly against the running app as shown above.

Extensions rows now say what they are: apps run on this device, connections
are accounts, MCP servers are servers configured here. Each is filterable,
and the browse catalog of things you never installed is gone -- the page
lists what you have plus built-ins you can turn on. Manual MCP setup moved
into Advanced settings.

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
openwork-app Ready Ready Preview, Comment Jul 27, 2026 6:07pm
openwork-den Ready Ready Preview, Comment Jul 27, 2026 6:07pm
openwork-den-worker-proxy Ready Ready Preview, Comment Jul 27, 2026 6:07pm
openwork-landing Ready Ready Preview, Comment, Open in v0 Jul 27, 2026 6:07pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
openwork-diagnostics Skipped Skipped Jul 27, 2026 6:07pm

Google Workspace now reaches OpenWork through an OpenWork Cloud org
connection, so the desktop no longer ships it as a built-in extension
with its own local OAuth panel. Every remaining built-in runs on this
device, which lets the taxonomy drop the manifest surface flag and the
runtime connection registry that only Google Workspace used.
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