Uh oh!
There was an error while loading. Please reload this page.
Migrate docs from Mintlify to fumadocs - #457
Conversation
- content unchanged: 140 mdx pages keep their paths and URLs; Mintlify components (Info, CodeGroup, Steps, Card, ...) aliased to fumadocs equivalents in components/mdx.tsx - docs.json stays the navigation source of truth; lib/tree.ts converts it to the fumadocs page tree at build time - API Reference generated from the same Stainless OpenAPI spec via fumadocs-openapi (virtual pages, playground off by default) - llms.txt, llms-full.txt, per-page raw markdown (.md suffix on any page URL), and AI page actions built in - Ask AI assistant wired to Anthropic via AI SDK (needs ANTHROPIC_API_KEY at deploy time) - redirects, GA4, Inter font, and brand colors ported from docs.json Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Stale comment
Risk assessment: Medium
This changes the production delivery stack for the entire documentation site rather than only moving content: 195 files are affected, with new Next.js routing, OpenAPI rendering, search, raw-markdown endpoints, and deployment/build configuration. That gives the migration a broad user-facing blast radius.
The new
POST /api/chatroute also invokes a billable Anthropic model from client-supplied message history without authentication, rate limiting, or request-size/history validation. Although its tool access is limited to public docs, this creates material cost-abuse, prompt-integrity, and operational-load risk. The existing broken-link workflow still runs the Mintlify checker and is currently failing against the migrated tree, so migration validation isn't green.I did not approve this PR because these cross-file runtime and operational changes meet the Medium-risk threshold.
Sent by Cursor Automation: Assign PR reviewers
The Vercel project was imported while the default branch was still Mintlify-only (no package.json), so framework auto-detection picked "Other" and served public/ statically. Pinning it here overrides the project setting on every deploy. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Stale comment
Risk assessment: Medium
This PR replaces the production delivery stack for the entire documentation site: 196 files are affected, with new Next.js routing, navigation generation, OpenAPI rendering, search, raw-markdown/OG endpoints, and build/deployment configuration. Although most documentation files are mechanical moves, the runtime and infrastructure changes have a broad user-facing blast radius.
The public
POST /api/chatroute also sends client-provided message histories to a billable Anthropic model without authentication, rate limiting, or request-size/history validation, which creates material cost-abuse and operational-load risk. The latest update addsvercel.jsonto select the Next.js framework; it doesn't reduce those existing risks and further confirms that this PR changes deployment behavior.I didn't approve because the cross-file production migration and unauthenticated model-backed endpoint meet the Medium-risk threshold.
Sent by Cursor Automation: Assign PR reviewers
Uh oh!
There was an error while loading. Please reload this page.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Stale comment
Risk assessment: Medium
This PR still replaces the production delivery stack for the entire documentation site: 196 files are affected, including new Next.js page/API routes, navigation generation, OpenAPI rendering, search, markdown/OG endpoints, and Vercel/build configuration. Most content changes are mechanical moves, but the runtime and deployment changes have a broad user-facing blast radius.
The new public
POST /api/chatroute also accepts client-provided message histories and invokes a billable Anthropic model without authentication, rate limiting, or request-size/history validation. The latest update changes only the default model from Sonnet to Haiku; that may reduce per-request cost but doesn't remove the cost-abuse, prompt-integrity, or operational-load exposure.I didn't approve because the cross-file production migration and unauthenticated model-backed endpoint remain Medium risk.
Sent by Cursor Automation: Assign PR reviewers
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
- port Kernel brand CSS from style.css (global lowercase, zero border radius, sidebar eyebrow headings, table styling, tinker-box, pricing button vars) - Card forwards img prop, CardGroup/Columns forward className - pages with url: frontmatter redirect externally instead of rendering an empty body - guard the .md/.mdx rewrites against /llms.mdx/* paths (they were double-rewriting direct raw-markdown URLs to 404s) and special-case /index.md for the home page - /api/chat requires a same-origin Origin header and caps output tokens - search index tolerates single-page failures instead of failing whole - set metadataBase so OG image URLs are absolute - ignore .env, simplify proxy.ts to Accept-header negotiation only Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Top navbar with horizontal tab bar (guides / api reference / cli / mcp) like the Mintlify site, and the Kernel logo SVGs from docs.json instead of a text title. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
There was a problem hiding this comment.
Stale comment
Risk assessment: Medium
This PR replaces the production delivery stack for the entire documentation site: 196 files change, including new Next.js page and API routes, sitewide rendering/layout code, navigation generation, OpenAPI rendering, search, raw-markdown/OG endpoints, and Vercel/build configuration. Most MDX changes are mechanical moves, but the runtime and deployment cutover affects every docs page and has a broad user-facing blast radius.
The updated
POST /api/chatnow checksOriginand caps output at 2,048 tokens, which reduces cross-site browser abuse and per-request cost. It remains an unauthenticated, billable Anthropic proxy with no rate limiting or input/history size validation; direct clients can forge the matchingOriginheader and send high-volume or token-heavy requests. The latest layout and branding changes don't reduce the migration's sitewide deployment risk.I didn't approve because the full-stack docs migration and remaining cost/operational exposure meet the Medium-risk threshold.
Sent by Cursor Automation: Assign PR reviewers
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Stale comment
Risk assessment: Medium
This PR replaces the production delivery stack for the entire documentation site: 196 files change, including new Next.js page and API routes, sitewide rendering/layout code, navigation generation, OpenAPI rendering, search, raw-markdown/OG endpoints, and Vercel/build configuration. Most MDX changes are mechanical moves, but the runtime and deployment cutover affects every docs page and has a broad user-facing blast radius.
The public
POST /api/chatroute remains an unauthenticated proxy to a billable Anthropic model. Its origin check and output cap reduce browser-based abuse and per-request cost, but there is still no rate limiting or input/history size validation, and non-browser clients can supply a matchingOriginheader. The latest commit adds only sidebar hover/active styling, so it doesn't reduce the migration or endpoint risks.I didn't approve because the sitewide production migration and remaining cost/operational exposure meet the Medium-risk threshold.
Sent by Cursor Automation: Assign PR reviewers
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Next shallow-merges metadata, so a page that sets openGraph drops the root's og:type/og:site_name/image. Spread shared siteOpenGraph into each page's openGraph so every page keeps og:type=website + og:site_name, and give API pages the site-default OG image. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Stale comment
Risk assessment: Medium
This remains a sitewide production-platform migration, not a documentation-only change. The actual diff touches 206 files (+4,139 / −449) and replaces Mintlify delivery with a self-hosted Next.js/Fumadocs app: App Router pages/layouts,
next.config.mjsrewrites/redirects,proxy.ts,package.json/bun.lock,vercel.json, search, OpenAPI rendering, and agent/markdown/OG endpoints. Most MDX moves are mechanical, but the runtime and deployment cutover still affect every docs page.The public
POST /api/chatpath still invokes a billable Anthropic model from client-supplied message history. Origin matching, BotID, Vercel Firewall rate limiting, and a large input-size cap reduce some abuse paths, but the endpoint stays unauthenticated and Origin checks are forgeable by non-browser clients. Braintrust instrumentation also logs chat input metadata (including client IP) when configured, adding an operational/privacy surface.The latest updates add production SEO surface (
sitemap,robots, canonical/OG metadata) and spread shared Open Graph fields into per-page metadata. That does not shrink the migration blast radius and expands indexing/social-preview behavior for the cutover.I did not approve because these infrastructure, sitewide UX, model-backed API, and SEO cutover changes meet the Medium-risk threshold.
Sent by Cursor Automation: Assign PR reviewers
Uh oh!
There was an error while loading. Please reload this page.
The /og route only resolved content pages, so every API endpoint fell back to the generic site image. Route api-reference image slugs to apiSource and pre-generate them, so each endpoint gets its own titled OG card (matching content pages and the previous Mintlify behavior). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Stale comment
Risk assessment: Medium
This remains a sitewide production-platform migration, not a documentation-only change. The actual diff touches 206 files (+4,161 / −449) and replaces Mintlify delivery with a self-hosted Next.js/Fumadocs app: App Router pages/layouts,
next.config.mjsrewrites/redirects,proxy.ts,package.json/bun.lock,vercel.json, search, OpenAPI rendering, and agent/markdown/OG endpoints. Most MDX moves are mechanical, but the runtime and deployment cutover still affect every docs page.The public
POST /api/chatpath still invokes a billable Anthropic model from client-supplied message history, with a new system prompt and server-side API key. Origin matching, BotID, Vercel Firewall rate limiting, and a large input-size cap reduce some abuse paths, but the endpoint stays unauthenticated and Origin checks are forgeable by non-browser clients. Braintrust instrumentation also logs chat input metadata (including client IP) when configured, adding an operational/privacy surface.The latest update only wires per-page OG image generation for API-reference routes (
app/og,getApiPageImage). That is a narrow SEO/preview correctness fix and does not shrink the migration blast radius.I did not approve because these infrastructure, sitewide UX, model-backed API, and SEO cutover changes meet the Medium-risk threshold.
Sent by Cursor Automation: Assign PR reviewers
…points - /api/chat: wrap JSON.parse in try/catch so a malformed body returns 400 instead of an uncaught 500 - llms-full.txt + llms.mdx: external-link stub pages (frontmatter url) have no markdown body — exclude them from the corpus and redirect the per-page .md endpoint to the real resource (308), matching how the HTML app, sitemap, and Ask AI index already treat them Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Stale comment
Risk assessment: Medium
This remains a sitewide production-platform migration, not a documentation-only change. The actual diff touches 206 files (+4,178 / −449) and replaces Mintlify delivery with a self-hosted Next.js/Fumadocs app: App Router pages/layouts,
next.config.mjsrewrites/redirects,proxy.ts,package.json/bun.lock,vercel.json, search, OpenAPI rendering, SEO (sitemap/robots/canonical/OG), and agent/markdown endpoints. Most MDX moves are mechanical, but the runtime and deployment cutover still affect every docs page.The public
POST /api/chatpath still invokes a billable Anthropic model from client-supplied message history, with a new system prompt and server-side API key. Origin matching, BotID, Vercel Firewall rate limiting, and a large input-size cap reduce some abuse paths, but the endpoint stays unauthenticated and Origin checks are forgeable by non-browser clients. Braintrust instrumentation also logs chat input metadata (including client IP) when configured, adding an operational/privacy surface.The latest update only hardens chat JSON parsing (400 on malformed bodies) and skips external-link stubs in
llmsendpoints. That does not shrink the migration, cost, or operational blast radius.I did not approve because the full-site infrastructure rewrite plus the unauthenticated model-backed endpoint meet the Medium-risk threshold.
Sent by Cursor Automation: Assign PR reviewers
| // where localStorage is undefined | ||
| const [input, setInput] = useState(() => | ||
| typeof window === 'undefined' ? '' : (localStorage.getItem(StorageKeyInput) ?? ''), | ||
| ); |
There was a problem hiding this comment.
Ask AI draft never restores
Medium Severity
The Ask AI input reads localStorage inside the useState initializer with a server guard, but on SSR that initializer runs with window undefined and the state is fixed to ''. React reuses that state on hydration and does not re-run the initializer on the client, so a saved draft written via onChange never appears again after refresh or navigation.
Reviewed by Cursor Bugbot for commit 4ccfdcc. Configure here.
Brings in 6 content commits from main (#465-#471). Two required manual relocation into the migrated content/docs tree: - chrome-policies: main renamed browsers/pools/policy-json.mdx -> browsers/chrome-policies.mdx and edited it; applied at content/docs/browsers/chrome-policies.mdx, dropped the old policy-json. - integrations/claude: main added an integrations/claude/ subfolder (moved claude-agent-sdk + claude-managed-agents, added overview and claude-code-and-desktop); mirrored under content/docs/integrations/claude/. style.css (Mintlify stylesheet) stays deleted — the migration replaced it with app/global.css. Changelog, proxies CA-bundle docs, and integrations overview auto-merged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Stale comment
Risk assessment: Medium
This remains a sitewide production-platform migration, not a documentation-only change. The actual diff touches 208 files (+4,178 / −453) and replaces Mintlify delivery with a Next.js/Fumadocs application.
Evidence from the diff:
- New production app stack:
package.json,next.config.mjs,vercel.json,proxy.ts,instrumentation.ts, app layouts/pages, sitemap/robots/OG routes- New user-facing API surfaces:
/api/chat(Anthropic streaming + system prompt + BotID/rate limits) and/api/search- Sitewide rendering/navigation rewrite: source loading, OpenAPI reference generation, MDX component layer, AI search UI
- Broad content move into
content/docs/plus asset relocation underpublic/Blast radius: High — affects the entire public docs site delivery path, routing/redirects, search, and a new LLM-backed chat endpoint.
Decision: Medium risk → comment only; not approving. No CODEOWNERS file found; no prior approval from this automation to revoke.
Sent by Cursor Automation: Assign PR reviewers
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.
There are 8 total unresolved issues (including 6 from previous reviews).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 1d3f4a4. Configure here.
| destination: "/integrations/stripe-projects-browser", | ||
| permanent: false, | ||
| }, | ||
| ]; |
There was a problem hiding this comment.
Incomplete docs.json redirect port
High Severity
Some redirects from the old docs.json were missed during the next.config.mjs port. This means /integrations/claude, /integrations/claude-agent-sdk, /integrations/claude-managed-agents, and /browsers/pools/policy-json now 404. This breaks internal links, including those in changelog.mdx to /browsers/pools/policy-json (now /browsers/chrome-policies).
Reviewed by Cursor Bugbot for commit 1d3f4a4. Configure here.
Uh oh!
There was an error while loading. Please reload this page.
Drop the direct @ai-sdk/anthropic provider (and ANTHROPIC_API_KEY) in favor of the AI Gateway: pass a bare provider/model slug to streamText, which the AI SDK routes via AI_GATEWAY_API_KEY. Default model is openai/gpt-5.6-luna at high reasoning effort; override with CHAT_MODEL. Bump maxOutputTokens 2048 -> 16000 so a reasoning pass can't truncate the reply. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Stale comment
Risk assessment: Medium
This remains a sitewide production-platform migration, not a documentation-only change. The actual diff touches 208 files (+4,176 / −453) and replaces Mintlify delivery with a Next.js/Fumadocs application.
Evidence from the diff:
- New production app stack:
package.json,bun.lock,next.config.mjs(rewrites/redirects),vercel.json,proxy.ts,instrumentation.ts, App Router layouts/pages underapp/- User-facing runtime surface: docs rendering, OpenAPI pages, search (
app/api/search), AI chat (app/api/chat+components/ai/search.tsx), LLM markdown/OG/sitemap/robots endpoints- Latest sync: chat switched from a direct Anthropic provider to Vercel AI Gateway (
AI_GATEWAY_API_KEY/CHAT_MODEL), with highermaxOutputTokens(16000) and high reasoning effort — still a public, gated LLM endpoint with cost/abuse blast radius- Most MDX moves are mechanical, but the hosting/runtime cutover affects every docs URL
Decision: Medium risk — comment only; not approving. No CODEOWNERS file present; no prior approval to revoke.
Sent by Cursor Automation: Assign PR reviewers
Brings in #464 (browser-pools guide refresh) and #478 (chrome-policies URLAllowlist example). One manual resolution: main collapsed the browsers/pools/ subfolder (faq + overview) into a single browsers/pools.mdx; applied that at content/docs/browsers/pools.mdx and dropped the old subfolder (docs.json already redirects the old subpaths to /browsers/pools). All other content edits auto-merged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Stale comment
Risk assessment: Medium
This remains a sitewide production-platform migration, not a documentation-only change. The actual diff touches 207 files (+4,176 / −453) and replaces Mintlify delivery with a Next.js/Fumadocs application.
Evidence from the diff:
- New production app stack:
package.json,bun.lock,next.config.mjs(rewrites/redirects),vercel.json,proxy.ts,instrumentation.ts, App Router layouts/pages underapp/- User-facing runtime surfaces:
/api/chat(AI Gateway streaming + system prompt + BotID/Firewall rate limits),/api/search,llms.txt/llms-full.txt/ per-page markdown routes, sitemap/robots/OG- Cross-cutting rendering/nav changes:
lib/tree.ts,lib/source.ts, OpenAPI virtual pages, MDX component shims, client UI for Ask AI and page actions- Content tree relocation into
content/docs/(mostly mechanical), plus the latest sync merging additional main-branch content (pools collapse, chrome-policies example)Hardening on
/api/chat(origin check, BotID, Firewall rate limit, input-size cap) reduces some abuse exposure versus earlier revisions, but does not remove the Medium-risk drivers: infrastructure cutover, broad docs blast radius, new billable model-backed public endpoint, and prompt/runtime behavior changes.Decision: Medium risk → comment only; not approving. No prior approval from this automation to dismiss. No CODEOWNERS file present; not assigning reviewers.
Sent by Cursor Automation: Assign PR reviewers
Brings in 11 commits from main (#479-#494): terraform integration page, durable MCP/resource contracts, viewport/kiosk updates, Aug 7 changelog, Claude directory connector, and an API-spec refresh. Two manual bits: main's new integrations/terraform.mdx placed at the migrated content/docs path (nav already references it); and main's committed specs/openapi.documented.yml dropped — the fumadocs setup fetches the spec live from Stainless (lib/openapi.ts), so a committed copy is an unused Mintlify-era artifact. The API reference already reflects the #486 spec refresh via that URL. Everything else auto-merged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Risk assessment: Medium
This remains a sitewide production-platform migration, not a documentation-only change. The actual diff touches 209 files (+4,173 / −39,695 across the compared range; GitHub reports +4,176 / −18,702) and replaces Mintlify delivery with a Next.js/Fumadocs application.
Evidence from the diff:
- New production app stack:
package.json,bun.lock,next.config.mjs(rewrites/redirects),vercel.json,proxy.ts,source.config.ts,instrumentation.ts - Sitewide rendering & routing:
app/layout.tsx,app/(docs)/**, OpenAPI pages, OG/sitemap/robots routes - New user-facing API surfaces:
app/api/chat/route.ts(AI SDK streaming + search tools + rate limit/bot checks),app/api/search/route.ts, LLM markdown endpoints (llms.txt,llms-full.txt,llms.mdx) - Shared libraries/components: navigation/source helpers under
lib/, MDX/OpenAPI UI undercomponents/ - Content moves under
content/docs/are largely renames, but they ride along with the platform rewrite
Blast radius: high — every docs page, search, chat, and machine-readable markdown path depends on the new stack.
Action: Comment only; not approving under the Medium-or-higher rule. No prior approval from this automation to revoke.
Sent by Cursor Automation: Assign PR reviewers




Summary
Replaces Mintlify hosting with a self-hosted fumadocs (Next.js) app, deployable on Vercel.
What's preserved
/browsers/standby). Content edits were limited to removing 3 dead snippet-import lines and adding frontmatter to one untracked testing doc.docs.jsonstays the navigation source of truth —lib/tree.tsconverts its tabs/groups into the sidebar at build time, so the editing workflow doesn't change. Redirects ported tonext.config.mjs.Info,Note,Tip,Warning,Card,CardGroup,Steps,Tabs,Accordion,Frame,Update,CodeGroup(incl. tab labels from fence titles, via a small remark plugin) are aliased to fumadocs equivalents incomponents/mdx.tsx.fumadocs-openapi(virtual pages, no generated files). Interactive playground is off (one flag incomponents/api-page.tsxto enable).New (things Mintlify gated behind paid tiers)
/llms.txt+/llms-full.txt(~970KB markdown dump).md/.mdxto any page URLANTHROPIC_API_KEYset in Vercel; degrades gracefully without itKnown gaps / review notes
/api-reference/getProjectsinstead of Mintlify's generated paths) — worth eyeballing hardest in the previewbun run buildcompiles all 561 pages green,bun run lintgreen, key routes smoke-tested (content pages, API reference, llms routes, .md rewrites, redirects). No visual QA beyond that yet.Deploy
Vercel: import repo, framework Next.js,
bun install && bun run build, setANTHROPIC_API_KEY, pointdocs.kernel.shat it.🤖 Generated with Claude Code
Note
High Risk
Full docs platform swap plus a new public AI chat endpoint (origin checks, bot/rate limits, gateway spend) — URL and API-reference slug changes need careful preview QA before cutover.
Overview
Replaces Mintlify with a self-hosted fumadocs (Next.js 16) app — Bun for install/dev/build, Biome for lint, and Vercel-oriented ignores and tooling.
Content and URLs stay largely the same: MDX still lives under
content/docs/;docs.jsonstill drives the sidebar vialib/tree.ts. Mintlify MDX tags are shimmed incomponents/mdx.tsx(callouts, cards, steps, tabs, snippets). A few pages drop dead snippet imports in favor of registered components.New site surface: catch-all doc pages, separate OpenAPI reference routes, search (
/api/search), sitemap/robots/OG images, and llms routes (/llms.txt,/llms-full.txt, per-page.mdexports). Ask AI adds a layout panel plus/api/chat(Flexsearch-backed tool, Vercel Firewall rate limits, BotID, Braintrust tracing, AI Gateway model env).API docs UX customizes fumadocs-openapi (Mintlify-style response dropdown, sidebar method badges, playground disabled by default). Brand/CSS ports Kernel styling (lowercase prose, square corners, table/tinker-box rules).
Contributor docs switch local workflow from
mintlify devtobun dev/bun run build.Reviewed by Cursor Bugbot for commit 32f2efb. Bugbot is set up for automated code reviews on this repo. Configure here.