Uh oh!
There was an error while loading. Please reload this page.
Normalize integration card categories to match routes - #1088
Conversation
Extract a client-safe toolkit-category helper so integration index links and catalog enrichment use the same category allow-list as static routes, instead of raw catalog categories that can miss pages or 404. Co-authored-by: Cursor <cursoragent@cursor.com>
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Keep catalog enrichment aligned with route generation: toolkit JSON wins for docsLink, and category values are normalized before cards/filters use them. Co-authored-by: Cursor <cursoragent@cursor.com>
jottakka
commented
Jul 20, 2026
Independent follow-up to #1065: share a client-safe |
Uh oh!
There was an error while loading. Please reload this page.
jottakka
commented
Jul 21, 2026
Treat explicit empty-string category/docsLink as present (matching ??), and widen ToolkitWithDocsLink so normalized "others" typechecks through the build. Co-authored-by: Cursor <cursoragent@cursor.com>
jottakka
commented
Jul 21, 2026
Superseded by #1065 (category normalize + client-safe helper were folded in there). |
Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 99ec991. Configure here.
Uh oh!
There was an error while loading. Please reload this page.
others redirects to the index and has no [toolkitId] route, so keep it as a normalize fallback only and exclude it from valid/clickable card links. Co-authored-by: Cursor <cursoragent@cursor.com>

Summary
toolkit-categoryhelper (INTEGRATION_CATEGORIES+normalizeCategory) so browser cards never import server-only route codetoIntegrationLink, sidebar sync, and keep route generation on the same allow-listcategoryfrom toolkit JSON (same source of truth as routes), not onlydocsLinkIndependent of #1065: closes the remaining card/route category contract gap Bugbot found there.
Test plan
pnpm exec vitest --run --exclude '.worktrees/**' tests/integration-index-links.test.ts toolkit-docs-generator/tests/app-lib/toolkit-category.test.ts toolkit-docs-generator/tests/app-lib/toolkit-static-params.test.ts toolkit-docs-generator/tests/scripts/sync-toolkit-sidebar.test.ts/others/...and matcheslistValidIntegrationLinkswhen a page exists thereMade with Cursor