[fix] Add search guards to Composio#3860
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
This pull request adds a search guard to Composio integrations and restructures the documentation by creating a new top-level "Integrations" section. The search guard ensures that searches are only performed when the query has at least 3 characters.
Changes:
- Added minimum 3-character validation for Composio integration searches in both frontend and backend
- Created a new "Integrations" section in documentation with separate subsections for Frameworks, LLM Providers, and Libraries
- Moved all integration documentation from
/observability/integrations/to the new/integrations/structure with appropriate redirects - Added a new "puzzle" icon for the Integrations navigation item
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| web/oss/src/features/gateway-tools/hooks/useCatalogIntegrations.ts | Added length check to only search when query has 3+ characters |
| api/oss/src/core/tools/providers/composio/catalog.py | Added backend validation for search parameter length |
| docs/src/icons/library.tsx | Added new PuzzleIcon component with light/dark mode variants |
| docs/sidebars.ts | Added new integrationsSidebar and updated observability sidebar to reference new integration paths |
| docs/docusaurus.config.ts | Added Integrations navigation item and URL redirects from old paths |
| docs/docs/observability/integrations/category.json | Deleted obsolete category file |
| docs/docs/observability/*.mdx | Updated integration links to new paths |
| docs/docs/integrations/overview.mdx | Created new integrations overview page |
| docs/docs/integrations/**/overview.mdx | Created overview pages for each integration category |
| docs/docs/integrations/**/observability.mdx | Moved integration docs with updated sidebar labels |
| docs/docs/integrations/**/category.json | Added category configuration files |
| docs/docs/getting-started/02-quick-start.mdx | Updated integration links |
| docs/blog/*.mdx | Updated integration links in blog posts |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -21,7 +21,7 @@ export const catalogIntegrationsInfiniteAtom = atomWithInfiniteQuery<Integration | |||
| queryKey: ["tools", "catalog", "integrations", DEFAULT_PROVIDER, search], | |||
There was a problem hiding this comment.
The query key on line 21 includes the raw search value, but the actual search parameter sent to the API is filtered by the length check on line 24. This means that search strings like "a", "ab", and "" will all create separate cache entries even though they all result in the same API call (with search: undefined). Consider normalizing the search value in the query key to match what's actually sent: search.length >= 3 ? search : "". This will prevent unnecessary cache pollution and improve cache hit rates.
Railway Preview Environment
Updated at 2026-02-27T15:41:19.237Z |
No description provided.