Repository navigation
feat(portal): gate VS Code extensions on agent capability - #1463
Open
Cedric Vidal (cedricvidal) wants to merge 1 commit into
Open
Cedric Vidal (cedricvidal) wants to merge 1 commit into
Cedric Vidal (cedricvidal) wants to merge 1 commit into
Conversation
Extensions UI (nav item, /extensions routes, Submit Run, Resubmit, profile forms) is now shown only when at least one available agent declares capabilities.supportsExtensions, independent of strict mode. The "extensions" feature flag is removed: dropped from the API seed and deleted from existing databases by migration 031. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Cedric Vidal (cedricvidal)
requested a review
from Wassim Chegham (manekinekko)
as a code owner
October 5, 2026 22:17
Test Results (Node.js 22)test: Run #196
🎉 All tests passed! |
This branch has not been deployed
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.
Summary
VS Code Extensions support in the Portal was gated by an
extensionsfeature flag. It showed up even when no registered agent could actually use extensions. This PR makes agent capability the only deciding factor. Extensions UI is shown only while at least one available agent declarescapabilities.supportsExtensions: true. The same rule applies in both strict and compatibility modes.types.ts):agentSupportsExtensions(agent)andhasExtensionCapableAgent(agents), exposed through a newuseExtensionsSupport()hook.Layout.tsx): the Extensions item is hidden unless an extension-capable agent exists.ExtensionsRoute.tsx,App.tsx):/extensions,/extensions/:idand preview redirect away when no agent is capable. This replaces theFeatureRoute featureKey="extensions"guard.RunsList.tsx), New Profile and New Profile Version show extension pickers only for a selected agent that supports extensions.extensionsindefaultFlags. Migration031-remove-extensions-feature-flagdeletes existing flag documents (down()restores it) and is registered inrequired-migrations.ts.Worth noting for review:
agent.yamlin the repo currently declaressupportsExtensions: false. Once this merges, Extensions UI stays hidden everywhere until an agent opts in.Demos
Walkthrough (about 98 s, three parts). The second agent is a mock agent registered through the local API for demo purposes only.
/extensionsredirects to Statistics, and neither Submit Run nor New Profile shows an Extensions section.supportsExtensions: trueregisters with the API./extensions, in Submit Run and in New Profile. Switching back to Copilot CLI hides the Submit Run section again.Before
Part 1 of the walkthrough below (no extension-capable agent: Extensions hidden everywhere).
After
walkthrough.mp4
Testing
pnpm --filter portal test(targeted:types.test.ts,Layout.test.tsx,ExtensionsRoute.test.tsx): 33 passedpnpm --filter portal test+pnpm --filter db-migrations test(full suites): 588 passedpnpm --filter api test(agent endpoints + OpenAPI): 227 passedtsc --noEmit) for portal, db-migrations and api: cleanDocumentation and compatibility
docs/architecture/app-design.md(capability gating),docs/architecture/db.mdanddocs/architecture/db-migrations.md(migration 031), andwebsite/.../guides/importing-extensions.mdx(requires an extension-capable agent).extensionsfeature flag is removed. Run migrations (pnpm migrate:up) to clean up the existing flag document; Admin no longer shows the toggle. No API contract changes.Checklist
extensionsflag.)up()/down()and keep it CosmosDB-compatible.NOTICE/NOTICE-REVIEW.txtwithpnpm noticeas needed. (N/A)