-
Notifications
You must be signed in to change notification settings - Fork 30
Feat/store mcp metadata fields #2130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Add friendly_name, short_description, mesh_description, tags, and categories to type definitions - Prioritize friendly_name for display names across all views (cards and detail page) - Use short_description in cards and below app name in detail page - Use mesh_description for Overview section with fallback to server.description - Display tags and categories in sidebar Technical Details section (after Version) - Update extractCardDisplayData and extractItemData to handle new fields with proper priority fallbacks
- Add findFiltersToolName utility to find COLLECTION_REGISTRY_APP_FILTERS tool - Create StoreFilters component with clickable tag/category chips - Fetch available filters from registry (optional - not all registries support it) - Filter items locally by selected tags and categories - Add clear filters button when filters are active
- Update RegistryFiltersResponse to use FilterItem[] instead of string[] - Update StoreFilters component to access .value from filter items - Display filter count in parentheses next to filter value - Update StoreDiscoveryUI props to use FilterItem type
- Replace inline filter list with compact dropdown popovers - Add search functionality inside filter dropdowns - Sort filters by count (most popular first) - Show only top 6 categories as quick access chips - Display selected filters as removable chips below - Add badge count on dropdown buttons when filters selected - Much cleaner UI that scales with many filters
- Lift filter state to StoreDiscovery component - Include tags and categories in LIST API call params - Include filters in query key so data refetches when filters change - Remove local tag/category filtering (only search remains client-side) - Add loading state while filtering - Add empty state for no matching filters
🧪 BenchmarkShould we run the MCP Gateway benchmark for this PR? React with 👍 to run the benchmark.
Benchmark will run on the next push after you react. |
Release OptionsShould a new version be published when this PR is merged? React with an emoji to vote on the release type:
Current version: Deployment
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1 issue found across 9 files
Prompt for AI agents (all issues)
Check if these issues are valid — if so, understand the root cause of each and fix them.
<file name="apps/mesh/src/web/components/store/store-discovery.tsx">
<violation number="1" location="apps/mesh/src/web/components/store/store-discovery.tsx:74">
P2: `isLoading` from `useSuspenseInfiniteQuery` is always `false` after the component renders (suspense handles the loading state). Use `isFetching` instead to detect when data is being refetched due to filter changes.
The fix also excludes `isFetchingNextPage` to avoid showing the filtering indicator during pagination.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
- isLoading from useSuspenseInfiniteQuery is always false after render - Use isFetching to detect when data is being refetched due to filter changes - Exclude isFetchingNextPage to avoid showing filter indicator during pagination - Apply biome formatting
- Use useSuspenseQuery for filters instead of useQuery - Split into StoreDiscoveryContent (with filters) and StoreDiscoveryWithoutFilters - Both filters and list now load together, preventing layout shift - Filters appear at the same time as the content
- Add placeholderData: keepPreviousData to list queries - Cards remain visible while fetching new filtered results - No more full page reload when changing filters - Filtering indicator still shows loading state
- Use useInfiniteQuery with keepPreviousData for list with filters - Keep useSuspenseInfiniteQuery for list without filters (initial load) - Add isInitialLoading prop to handle initial loading state - Show subtle 'Updating results...' indicator above cards while filtering - Cards remain visible during filter changes - no more full page reload
What is this contribution about?
Screenshots/Demonstration
Review Checklist
Summary by cubic
Add support for new MCP metadata fields and server-side tag/category filters in the store. Improves card/detail display and filter UX for faster discovery.
New Features
Bug Fixes
Written for commit 0e33369. Summary will update on new commits.