Skip to content

Migrate docs from Mintlify to fumadocs#457

Open
masnwilliams wants to merge 26 commits into
mainfrom
hypeship/fumadocs-migration
Open

Migrate docs from Mintlify to fumadocs#457
masnwilliams wants to merge 26 commits into
mainfrom
hypeship/fumadocs-migration

Conversation

@masnwilliams

@masnwilliams masnwilliams commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Replaces Mintlify hosting with a self-hosted fumadocs (Next.js) app, deployable on Vercel.

What's preserved

  • All 140 content pages unchanged — same file paths, same URLs (served at root, e.g. /browsers/standby). Content edits were limited to removing 3 dead snippet-import lines and adding frontmatter to one untracked testing doc.
  • docs.json stays the navigation source of truthlib/tree.ts converts its tabs/groups into the sidebar at build time, so the editing workflow doesn't change. Redirects ported to next.config.mjs.
  • Mintlify MDX components still workInfo, 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 in components/mdx.tsx.
  • API Reference generated from the same Stainless OpenAPI spec URL via fumadocs-openapi (virtual pages, no generated files). Interactive playground is off (one flag in components/api-page.tsx to enable).
  • GA4, Inter, brand colors, favicon, navbar links (Dashboard / Changelog / Careers / Sign up).

New (things Mintlify gated behind paid tiers)

  • /llms.txt + /llms-full.txt (~970KB markdown dump)
  • Raw markdown for agents: append .md/.mdx to any page URL
  • AI page actions on every page (copy markdown, open in ChatGPT/Claude)
  • Ask AI assistant (AI SDK + Anthropic) with docs search tool — needs ANTHROPIC_API_KEY set in Vercel; degrades gracefully without it
  • Vercel preview deployments per PR

Known gaps / review notes

  • API reference page URLs change (operation-id slugs like /api-reference/getProjects instead of Mintlify's generated paths) — worth eyeballing hardest in the preview
  • Card icons (Font Awesome names) are dropped; search is local flexsearch/orama, not Mintlify's hosted search; API pages aren't in search yet
  • Sidebar nesting >2 levels renders as collapsible folders, cosmetically slightly different from Mintlify
  • Tests: bun run build compiles all 561 pages green, bun run lint green, 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, set ANTHROPIC_API_KEY, point docs.kernel.sh at it.

🤖 Generated with Claude Code


Note

High Risk
Full docs platform swap affects every URL, build, and deploy path; the new /api/chat route uses a paid LLM API key and needs correct abuse controls in production.

Overview
Replaces Mintlify with a fumadocs + Next.js app (bun dev / bun run build, Biome lint). MDX stays under content/docs/; docs.json still drives the sidebar via lib/tree.ts, with redirects moved to Next config.

Routing & content: Catch-all doc pages, a separate API reference tree from the same Stainless OpenAPI URL (fumadocs-openapi), OG images, and .md/.mdx rewrites to raw markdown for agents. Mintlify fences/CodeGroup behavior is handled by remarkMintlifyCode; callouts, cards, tabs, etc. are aliased in components/mdx.tsx. Snippet components (CopyPromptButton, PricingCalculator, YouTubeVideo) are proper client modules registered in MDX.

New product surface: Site search (/api/search), /llms.txt / /llms-full.txt, Ask AI (floating panel + /api/chat with Anthropic, Flexsearch tool, origin check, BotID, Vercel Firewall rate limit, Braintrust tracing). Page actions: copy markdown, open in ChatGPT/Claude. Kernel brand CSS (lowercase UI, square corners, table styling) ports Mintlify theming.

API docs UX: Custom sidebar method badges, response status dropdown instead of accordions, playground disabled by default.

Content tweaks only: Remove old /snippets/* imports from a few pages; add frontmatter to one testing markdown file.

Reviewed by Cursor Bugbot for commit 3fe509e. Bugbot is set up for automated code reviews on this repo. Configure here.

- 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>
@mintlify

mintlify Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
Kernel 🟢 Ready View Preview Jul 21, 2026, 11:52 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@masnwilliams
masnwilliams marked this pull request as ready for review July 21, 2026 23:56
@vercel

vercel Bot commented Jul 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment Jul 22, 2026 2:03pm

Comment thread components/mintlify.tsx
Comment thread app/api/chat/route.ts Outdated
Comment thread app/global.css
Comment thread app/(docs)/[[...slug]]/page.tsx
Comment thread .gitignore
Comment thread next.config.mjs Outdated
Comment thread app/layout.tsx
Comment thread components/ai/search.tsx
const [actualOpen, setActualOpen] = useState(open);
useHotKey();

if (open && !actualOpen) setActualOpen(open);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

setState during render in panel

Medium Severity

AISearchPanel calls setActualOpen(open) directly in the render path when open && !actualOpen. Updating state while rendering violates React’s rules and can cause extra renders or warnings, especially under Strict Mode.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 6ed79ee. Configure here.

Comment thread app/api/chat/route.ts

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/chat route 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.

Open in Web View Automation 

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>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/chat route 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 adds vercel.json to 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.

Open in Web View Automation 

Sent by Cursor Automation: Assign PR reviewers

@vercel vercel Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional Suggestion:

proxy.ts builds path-to-regexp templates as /{/*path} because docsRoute is "/", which only matches the literal root path, so header-based markdown negotiation never matches any real doc page.

Fix on Vercel

Comment thread app/(docs)/[[...slug]]/page.tsx Outdated
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/chat route 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.

Open in Web View Automation 

Sent by Cursor Automation: Assign PR reviewers

Comment thread app/(docs)/[[...slug]]/page.tsx
Comment thread content/docs/index.mdx Outdated
Comment thread components/snippets/pricing-calculator.tsx
- 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>
@mintlify

mintlify Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
Kernel 🟡 Building Jul 21, 2026, 11:51 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/chat now checks Origin and 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 matching Origin header 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.

Open in Web View Automation 

Sent by Cursor Automation: Assign PR reviewers

Comment thread app/api/chat/route.ts
Comment thread app/llms.mdx/[[...slug]]/route.ts
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/chat route 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 matching Origin header. 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.

Open in Web View Automation 

Sent by Cursor Automation: Assign PR reviewers

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk assessment: Medium

This remains a sitewide production-platform migration rather than a documentation-only change. The actual diff changes 201 files with 3,981 additions and replaces Mintlify delivery with a Next.js/Fumadocs application, including shared routing and layout code, generated OpenAPI pages, search, raw-markdown and OG endpoints, a new dependency/build stack, and Vercel configuration. Although most MDX files are mechanical moves, the runtime and deployment cutover affects every docs page.

The PR also adds a public, billable Anthropic-backed chat endpoint with BotID, dashboard-managed firewall rate limiting, request/output bounds, and Braintrust telemetry. The latest update derives a stable trace context from a client-supplied conversation message ID so multiple turns share one external telemetry trace; it doesn't reduce the existing privacy, cost, and operational surface of the endpoint. Several user-facing correctness concerns also remain open in review threads.

I didn't approve because the full-site runtime/infrastructure cutover and third-party model and telemetry integrations meet the Medium-risk threshold.

Open in Web View Automation 

Sent by Cursor Automation: Assign PR reviewers

Comment thread components/snippets/pricing-calculator.tsx
The AI SDK re-POSTs on retry (trigger: regenerate-message), so a
regeneration logs as a fresh turn span. Tag it: trigger metadata + the
regenerated message id, and name the span 'docs-chat (retry)' so retried
answers are obvious and filterable in the thread (a regenerate is a
signal the first answer fell short) while staying in the conversation.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk assessment: Medium

The actual diff changes 201 files with 3,991 additions and replaces the production delivery stack for the entire documentation site with a Next.js/Fumadocs application. It adds sitewide routing and rendering, generated OpenAPI pages, search, raw-markdown and OG endpoints, a new dependency/build stack, and Vercel configuration. Although most MDX changes are mechanical moves, the runtime and deployment cutover affects every docs page and has a broad user-facing blast radius.

The PR also adds a public, billable Anthropic-backed chat endpoint with BotID, dashboard-managed firewall rate limiting, request/output bounds, and Braintrust telemetry that can send user message content, client IP, model output, and usage data to a third party. The latest update only tags retry requests and regenerated-message IDs in that telemetry; it doesn't reduce the migration, privacy, cost, or operational surface.

I didn't approve because the sitewide runtime/infrastructure migration and the new external model and telemetry integrations meet the Medium-risk threshold.

Open in Web View Automation 

Sent by Cursor Automation: Assign PR reviewers

Comment thread app/api/chat/route.ts
Comment thread proxy.ts
Override the MDX img component with fumadocs' ImageZoom so screenshots,
diagrams, and demo gifs are click-to-zoom. Uses the built-in component +
its stylesheet — no custom image handling.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk assessment: Medium

The actual diff changes 201 files with 3,999 additions and replaces the production delivery stack for the entire documentation site with a Next.js/Fumadocs application. It adds sitewide routing and rendering, generated OpenAPI pages, search, raw-markdown and OG endpoints, a new dependency/build stack, and Vercel configuration. Although most MDX changes are mechanical moves, the runtime and deployment cutover affects every docs page and has a broad user-facing blast radius.

The PR also adds a public, billable Anthropic-backed chat endpoint with BotID, dashboard-managed firewall rate limiting, request/output bounds, and Braintrust telemetry that can send user message content, client IP, model output, and usage data to a third party. The latest update only enables click-to-zoom rendering for content images; it doesn't reduce the migration, privacy, cost, or operational surface.

I didn't approve because the sitewide runtime/infrastructure migration and the external model and telemetry integrations meet the Medium-risk threshold.

Open in Web View Automation 

Sent by Cursor Automation: Assign PR reviewers

Comment thread app/api/chat/route.ts
if (doc) search.add(doc);
}

return search;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chat rebuilds search every cold start

Medium Severity

Each serverless instance starts createSearchServer() at module load and awaits getText("processed") for every docs page before flexsearch is usable. First Ask AI requests on a cold worker can block on hundreds of page extractions with no shared or build-time index.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 240ffc7. Configure here.

Comment thread components/snippets/pricing-calculator.tsx
const response = ctx.schema.resolve(responses[status]);
const contentTypes = response.content ? Object.entries(response.content) : [];
const [mediaType, media] = contentTypes[0] ?? [];
const schema = media ? ctx.schema.resolve(media).schema : undefined;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

API response drops extra media

Medium Severity

The custom API response UI always takes the first entry from response.content and never lets readers switch media types. Operations with multiple response body types (for example JSON and an error schema) show only the first type’s schema.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 240ffc7. Configure here.

The 50k-char guard was returning 413 after a handful of turns (stateless
chat re-sends full history + verbose answers). Raise to 400k chars
(~100k tokens, ~half of Haiku's context) — a coarse abuse ceiling that
real multi-turn conversations stay under, with rate limit + spend cap as
the real cost bounds.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk assessment: Medium

The actual diff changes 201 files with 4,001 additions and replaces the production delivery stack for the entire documentation site with a Next.js/Fumadocs application. It adds sitewide routing and rendering, generated OpenAPI pages, search, raw-markdown and OG endpoints, a new dependency/build stack, and Vercel configuration. Although most MDX changes are mechanical moves, the runtime and deployment cutover affects every docs page and has a broad user-facing blast radius.

The PR also adds a public, billable Anthropic-backed chat endpoint with BotID, dashboard-managed firewall rate limiting, and Braintrust telemetry that can transmit user message content, client IP, model output, and usage data to a third party. The latest update raises the accepted message-history size from 50,000 to 400,000 characters, increasing the possible per-request model cost and JSON parsing load while the rate-limit policy remains external to this diff.

I didn't approve because the sitewide runtime/infrastructure migration and the external model, cost-control, and telemetry surfaces meet the Medium-risk threshold.

Open in Web View Automation 

Sent by Cursor Automation: Assign PR reviewers

The filled saturated badges (white text on bright green/blue/red/orange)
read as off-brand and loud. Switch to muted tint backgrounds + coloured
text, matching the subtle prod badges — keeps the get/post/del semantic
without the in-your-face fills.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk assessment: Medium

The actual diff changes 201 files with 4,002 additions and replaces the production delivery stack for the entire documentation site with a Next.js/Fumadocs application. It adds sitewide routing and rendering, generated OpenAPI pages, search, raw-markdown and OG endpoints, a new dependency/build stack, and Vercel configuration. Although most MDX changes are mechanical moves, the runtime and deployment cutover affects every docs page and has a broad user-facing blast radius.

The PR also adds a public, billable Anthropic-backed chat endpoint with BotID, dashboard-managed firewall rate limiting, a 400,000-character request-history allowance, and Braintrust telemetry that can transmit user message content, client IP, model output, and usage data to a third party. The latest update only changes API method-badge colors; it doesn't reduce the migration, privacy, cost, or operational surface.

I didn't approve because the sitewide runtime/infrastructure migration and the external model, cost-control, and telemetry surfaces meet the Medium-risk threshold.

Open in Web View Automation 

Sent by Cursor Automation: Assign PR reviewers

- chat: return 403 (not 500) on a malformed Origin header, and reject an
  oversized body by Content-Length before parsing it
- llms-full.txt: use allSettled so one failing page can't drop the whole
  corpus
- markdown: bound the streaming render cache (FIFO) so a long streamed
  answer can't grow it without limit
- Ask AI input: guard the localStorage read for the server render pass
- pricing calculator: clamp number inputs so an empty field can't emit
  NaN totals, and hydrate from shared-link query params on mount
- api-reference: exclude from the .md/.mdx rewrites and markdown
  negotiation so those pages serve HTML instead of rewriting to a 404
  (generated from the OpenAPI spec, they have no markdown source)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk assessment: Medium

The actual diff changes 201 files with 4,064 additions and replaces the production delivery stack for the entire documentation site with a Next.js/Fumadocs application. It adds sitewide routing and rendering, generated OpenAPI pages, search, raw-markdown and OG endpoints, a new dependency/build stack, and Vercel configuration. Although most MDX changes are mechanical moves, the runtime and deployment cutover affects every docs page and has a broad user-facing blast radius.

The PR also adds a public Anthropic-backed chat endpoint, a new system prompt, BotID and dashboard-managed firewall controls, and Braintrust telemetry that logs user message content and client IP while auto-instrumenting model output and usage. The latest update adds malformed-Origin and request-size guards and fixes several rendering/route issues, but it doesn't reduce the migration, privacy, cost, or operational surface.

I didn't approve because the sitewide runtime/infrastructure migration and the new external model and telemetry integrations meet the Medium-risk threshold.

Open in Web View Automation 

Sent by Cursor Automation: Assign PR reviewers

Brings in the latest content edits from main — the FAQ 'Unsupported
Websites' → bot-detection reframing (#459) and the per-browser-type
Stripe pricing updates. Rename detection carried them onto the migrated
content/docs paths; no code overlap, build + lint green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Risk assessment: Medium

The actual diff changes 201 files with 4,064 additions and replaces the production delivery stack for the entire documentation site with a Next.js/Fumadocs application. It adds sitewide routing and rendering, generated OpenAPI pages, search, raw-markdown and OG endpoints, a new dependency/build stack, and Vercel configuration. Although most MDX changes are mechanical moves, the runtime and deployment cutover affects every docs page and has a broad user-facing blast radius.

The PR also adds a public Anthropic-backed chat endpoint, a new system prompt, BotID and dashboard-managed firewall controls, and Braintrust telemetry that logs user message content and client IP while auto-instrumenting model output and usage. The latest update changes browser-automation guidance and Stripe Projects pricing documentation only; it doesn't reduce the migration, privacy, cost, or operational surface.

I didn't approve because the sitewide runtime/infrastructure migration and the external model and telemetry integrations meet the Medium-risk threshold.

Open in Web View Automation 

Sent by Cursor Automation: Assign PR reviewers

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3fe509e. Configure here.

Comment thread app/api/chat/route.ts
return new Response("Payload Too Large", { status: 413 });
}

const reqJson = await req.json();

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing Content-Length skips size cap

Medium Severity

The chat route rejects oversized bodies using Number(req.headers.get("content-length")) before req.json(). When Content-Length is absent, that value is 0, so the check never runs and a large chunked body can be fully parsed before the later JSON size guard.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3fe509e. Configure here.

Comment thread app/api/chat/route.ts
description: page.data.description,
url: page.url,
content: await page.data.getText("processed"),
} as CustomDocument;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ask AI indexes external stubs

Low Severity

The Ask AI flexsearch index includes every page with getText, including frontmatter-only external link stubs. Search can return those internal URLs with empty content instead of useful docs or the real external target.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3fe509e. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant