feat(extensions): name apps, connections, and MCPs consistently - #3196
Merged
Conversation
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>
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
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.
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 changed
Extensions rows now say what they actually are, and the page only lists things you have.
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. Plusskillandplugin.ExtensionCard/ExtensionDetailModalnow take a singletaxonomyprop instead of the oldkind, which mixed data-model kinds ("OpenWork Extension", "UI Control") into user-facing badges.All · Apps · Connections · MCPs · Skills · Plugins, each with its own URL (/settings/extensions/apps,.../connections,.../mcps, …). The old/settings/extensions/mcpredirects to.../mcps.surface?: "local" | "cloud"(defaults to local); only Google Workspace declarescloud. 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.quickConnectEntriesnow 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.Tests
pnpm exec tsc --noEmit -p apps/app/tsconfig.json→ clean.bun test --isolate tests/inapps/app→ 462 pass, 0 fail. Newtests/extension-taxonomy.test.tscovers the classification and the "only Google Workspace is cloud" invariant;extension-itemsandsettings-routeexpectations 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":
Appsfilter → only local runtimes, each reading "This device":Connectionsfilter → only account-backed items; Google Workspace correctly reads "OpenWork Cloud":Console errors seen during the run were
ERR_CONNECTION_REFUSEDon127.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.