Add MCP gallery as an independent customization feed - #337574
Draft
Paul (pwang347) wants to merge 72 commits into
Draft
Paul (pwang347) wants to merge 72 commits into
Paul (pwang347) wants to merge 72 commits into
Conversation
Add a discovery-only AgentFinder section with metadata cards, GitHub owner avatars, search, filters, pagination, and accessible states. Route desktop catalog requests through a bounded, cancellable shared-process client and preserve encoded resource URLs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Route validated catalog resources through existing MCP and plugin installation flows, and import complete skill packages into confirmed harness locations. Preserve repository revisions and subdirectories, enforce trust and policy, and cover cancellation, overwrite protection, limits, and installation UI states. Isolate customization lifecycle tests from production registrations to fix full-suite CI failures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Bound catalog metadata before IPC and rendering, bind ResizeObserver to the widget window, preserve catalog state on unrelated entitlement changes, and label Accessible View metadata groups and destinations. Add regression coverage and accept the current AgentFinder screenshot baselines. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Accept the verified sidebar and migration-navigation changes caused by the AgentFinder tab. Preserve unrelated baselines and the previously accepted AgentFinder card fixtures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add chat.agentFinder.enabled with a disabled default and automatic experiment assignment. Gate section visibility and instantiation, catalog IPC and browser clients, and installation observers and work. Keep the shared-process catalog client truly lazy and cancel pending discovery/imports when the experiment is disabled. Add disabled-path, runtime-toggle and lazy-initialization coverage plus a disabled UI fixture. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve AgentFinder installation and experiment gating alongside upstream MCP compatibility/detail and migration activity changes. Combine test/fixture imports and retain the latest reviewed MCP screenshot baselines. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use the standard control height, inherited typography, and padded select treatment so the resource dropdown aligns with search and Refresh on both native and custom select implementations. Assert control geometry in wide and narrow fixtures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Introduce source-neutral marketplace contracts, opaque source-owned pagination, and source/version-scoped identities. Keep AgentFinder as the sole REST-backed source while presenting Marketplace throughout Customizations. Rename the default-off experiment to chat.customizations.unifiedMarketplace.enabled and retain lazy loading, installation safeguards, and accessibility behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve the unified customization marketplace and upstream changes. Resolve shared screenshot baseline conflicts in favor of current main while retaining catalog entries pending fresh CI. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the separate customization overview and AgentFinder section with one Discover surface. Add typed quick filters, grouped virtualized installed and available results, catalog paging and cancellation, and integrated accessibility coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Match the compact customization search sizing, inherit the management surface background, align virtualized results with the page header, and reuse Marketplace filter actions with modern panel-tab filter styling. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Constrain virtualized selection surfaces to the page measure and give browse cards and search results distinct marketplace-style content hierarchies. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Accept the visually inspected MarketplaceTab and customization navigation images from CI run 35783902863 for head 3564d3f. Preserve all unrelated baselines. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the global marketplace experiment with an AgentFinder public-feed source gate. Select sources per window, preserve lazy backends, and scope discovery and installation lifetimes to source enablement. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Restore cached Featured items immediately when a search is cleared, and let Discover queries target all registered marketplace feeds or one selected source. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Integrate per-source marketplace enablement and ranked feed pagination while preserving unified Discover. Reactivate Discover after an editor input is reopened so Agent Finder results are not left cancelled. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep browse content scrollable, quiet non-interactive result headings, and distinguish fallback artwork while aligning the import action with its behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the harness-specific Discover description with direct, accessible navigation to each supported customization section. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Report source failures without hiding healthy results, preserve suspended-source state through pagination, and support explicit renderer-owned recovery actions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Flatten and condense virtualized Discover results, move filters into the search toolbar, and load additional marketplace pages on scroll. Add source provenance and reversible uninstall actions for installed customizations. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Distinguish explicit source sign-in from failures in recovery controls, empty states, and accessible content. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep the internal catalog integration stable while removing backend branding from the exposed setting and source warnings. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep metadata beside customization names, tighten result rows, and preserve the subtle Featured surface across themes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Retain the Marketplace telemetry test setup alongside upstream MCP detail helpers. Preserve all Marketplace source, recovery, ranking, pagination, and source-gating changes. Resolve six MCP screenshot collisions using upstream baselines from e43c0a0 and 756c3e2; preserve all nonconflicting baselines. Parent images were visually reviewed. The combined Marketplace navigation and updated MCP layouts still require Linux screenshot CI after publication; no local hashes were generated. Validated fresh transpilation, 413 targeted tests, focused ESLint, editor diagnostics, and merge whitespace checks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Accept the six dark/light MCP migration, narrow MCP detail, and migration dashboard hashes from Screenshots & Tests run 35918097764, job 107374755174, for head cf1beec (rendered merge 395b114). Visually inspect every before/after pair and verify pixel differences are confined to the expected Marketplace/sidebar navigation. Upstream MCP content remains pixel-identical. Preserve all 192 unrelated baselines. The official screenshotBlocksCi comparator now matches all 198 artifact baselines byte-for-byte. CI passed all 52 Playwright tests and rendered all 3271 fixtures without errors; the six hash mismatches were the only failing step. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Name independent request, pagination, cursor, and installation-provenance bounds without changing their values or behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Clarify home-surface gating, feed-backed MCP policy, filtered pagination fallback, and current Import actions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The expanded targeted Import actions remain uncommitted, so describe only the current PR behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Defer the transient-error scenario until its UI changes are published. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ustomization-feed
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Desktop pagination, registry provenance, terminal service registration, and test structure contain blocking correctness issues.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 2
Open (4)
What changed in this PR
Adds the MCP Gallery as an independently gated source in Customizations Discover, while preserving registry-specific installation provenance.
Changes:
- Adds renderer-local MCP Gallery discovery and pagination.
- Routes MCP discovery from management to Discover when enabled.
- Extends installation, accessibility, tests, and documentation.
| File | Description |
|---|---|
aiCustomizationManagementEditor.fixture.ts |
Updates pagination fixture behavior. |
mcpWorkbenchService.test.ts |
Tests cross-registry isolation. |
mcpWorkbenchService.ts |
Validates installed-server registry identity. |
mcpListWidget.test.ts |
Tests gated management discovery. |
customizationMarketplaceInstallService.test.ts |
Tests MCP Gallery installation provenance. |
aiCustomizationDiscoveryPage.test.ts |
Covers MCP Gallery discovery. |
chat.shared.contribution.ts |
Registers experiment and changes chat providers. |
mcpListWidget.ts |
Hides legacy gallery discovery when gated. |
customizationMarketplaceWorkbenchService.ts |
Registers the web Gallery provider. |
customizationMarketplaceInstallService.ts |
Adds Gallery install/uninstall handling. |
customizationMarketplace.contribution.ts |
Updates accessibility help. |
aiCustomizationManagementEditor.ts |
Routes marketplace browsing to Discover. |
ai-customizations.test.md |
Expands manual scenarios. |
AI_CUSTOMIZATIONS.md |
Documents the new source architecture. |
mcpGalleryService.test.ts |
Tests page queries and failures. |
mcpManagement.ts |
Adds paged Gallery contracts. |
mcpGalleryService.ts |
Implements strict paged queries. |
customizationMarketplaceService.test.ts |
Tests native source composition. |
mcpGalleryMarketplaceProvider.test.ts |
Tests metadata mapping and cursors. |
customizationMarketplaceService.ts |
Composes IPC and local providers. |
mcpGalleryMarketplaceProvider.ts |
Adapts Gallery metadata for Discover. |
customizationMarketplaceSources.ts |
Defines the Gallery source and gate. |
customizationMarketplaceService.ts |
Adds Gallery installation provenance. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Screenshot ChangesBase: Changed (3)1 insignificant change(s) omitted (≤20 px, Δ≤2). See CI logs for details. Added (6) |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Prioritize the custom MCP gallery in browsing and equal-score search while preserving the legacy MCP management gallery when Discover's MCP source is disabled. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep legacy MCP Available whenever the default-off Marketplace visibility experiment is disabled. Enable the MCP Discover source by default only inside the Marketplace, independently of the public GitHub Feed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep the default MCP gallery in Discover unless the public GitHub Feed is enabled, retain both custom and default results in legacy MCP Available, and pin registry provenance for installation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use MarketplaceEnabled for the shared default-off setting while retaining the established setting key and source-neutral gate. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Apply the default-off visibility setting only to Discover, catalog queries and Marketplace installs so legacy management lists can still use independently enabled sources. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep source-neutral provider queries gated only by their own source settings; the default-off Marketplace flag controls Discover presentation and Marketplace installation without disabling legacy management catalogs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Marketplace-off home remains available while a management section is selected, but is not itself visible until navigating home. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve source-only legacy queries, shared default-on public feed, and MCP gallery composition behind Marketplace visibility. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Paul (pwang347)
changed the base branch from
main
to
pwang/marketplace-visibility-base
September 24, 2026 21:11
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…e' into pwang/mcp-gallery-customization-feed
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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
chat.customizations.marketplace.enabledvisibility experiment. Reuse the ranked, bounded, cancellable multi-source merger and opaque native gallery cursor without fabricating a score.Activation and source ordering
Validation
npm run typecheck-client,npm run valid-layers-check, targeted ESLint andgit diff --check: passing.Dependency
Before / after video
Historical preview at
e0aaca6a006, recorded before the separate visibility experiment was added; enablechat.customizations.marketplace.enabledto reproduce the Discover scene on the current branch. Code OSS Dev on macOS: cleanmain(4212437dd11) with the legacy MCP Servers Available section, followed by this PR (e0aaca6a006) with the MCP Gallery enabled in Discover. Both scenes use the live public MCP gallery; no server was installed. The recording is captioned and each scene was asserted in the scenario report.pr-337574-before-after.mp4