docs: revamp docs site and api reference - #127
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
|
| if (publicRoutes.has(opKey)) { | ||
| nextOperation.security = []; | ||
| } else { | ||
| nextOperation.parameters = addWorkspaceHeader(nextOperation.parameters); | ||
| } |
There was a problem hiding this comment.
This adds X-Workspace-Id to every authenticated operation, including invitation acceptance and other operations that do not consume workspace context. The generated reference therefore tells clients that these operations support workspace scoping even though the backend silently ignores the header. Add it only to operations whose handlers resolve workspace context.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
This comment has been minimized.
This comment has been minimized.
Ship changelog version sidebar pages, regenerated API reference endpoints, EFF-70 enterprise limits, integration logo updates, and remaining content cleanup on the doctor branch. Co-authored-by: Cursor <cursoragent@cursor.com>
| lines.push(' -H "Authorization: Bearer <token>" \\'); | ||
| lines.push(' -H "X-API-Key: <api-key>" \\'); |
There was a problem hiding this comment.
Public examples require credentials
The generated cURL block always includes both authentication headers, including for operations explicitly marked public. For example, the login page says Auth: Public but tells users to send placeholder bearer and API-key credentials. This makes copied examples misleading and obscures whether an endpoint expects one authentication scheme or none.
The CI link check failed on routes like /docs/platform/ because meta.json files are gitignored; also accept index.mdx folder routes. Co-authored-by: Cursor <cursoragent@cursor.com>
Remove changelog generation from prebuild since release pages are committed, and make the generator skip gracefully when GitHub rate-limits unauthenticated requests. Co-authored-by: Cursor <cursoragent@cursor.com>
Regenerate stale .source/server.ts before dev/postinstall, bind dev to 127.0.0.1, and add dev:stop to clear stuck servers. Co-authored-by: Cursor <cursoragent@cursor.com>
| function isValidCollectionsFile() { | ||
| if (!fs.existsSync(serverFile)) return false; | ||
| const content = fs.readFileSync(serverFile, 'utf8').trim(); | ||
| return content.length > 0 && content.includes('export const docs'); | ||
| } |
There was a problem hiding this comment.
Generated collections can stay stale
In a long-lived checkout, changes to source.config.ts or the documentation content do not make this check fail because it only looks for a nonempty .source/server.ts containing export const docs. The dev and postinstall commands can therefore skip regeneration and use stale routes or page metadata. Please check freshness against the generator inputs or regenerate the collection at these lifecycle points.
Co-authored-by: Cursor <cursoragent@cursor.com>
| const text = linkifyUrls(lines.join('\n').trim()); | ||
| if (text) return text; |
There was a problem hiding this comment.
Template Prompts Replace Changelogs
The PR enrichment accepts every nonempty section as release-note content, including untouched prompts such as “Briefly describe what this PR changes.” Once one of these prompts is accepted, hasDetailedSections prevents the generator from using the meaningful release-body summary. This has already left generated changelog pages such as v1.5.20 with template instructions instead of useful release details. Please ignore known template prompts and use the release-body changes when no substantive PR sections remain.
Co-authored-by: Cursor <cursoragent@cursor.com>
commented
Sep 22, 2026
|
Want your agent to iterate on Greptile's feedback? Try greploops. |
Co-authored-by: Cursor <cursoragent@cursor.com>
| If you first choose subsets from larger candidate pools, that selection stage can be modeled with | ||
| nCr, then expanded into persona-scenario run pairs. |
There was a problem hiding this comment.
The new nCr guidance describes a subset-selection stage that the product does not support. Evaluation suites accept explicit persona and scenario lists and generate every persona × scenario pair, while each pair is repeated only by runs_per_combination. The actual run total is therefore P × S × runs_per_combination, so this guidance—and the matching formula in platform/index.mdx:27-30—can cause users to overestimate suite size and call usage.
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
What Changed?
This PR is a major docs revamp on the
doctorbranch — 520 files changed (~54k insertions). It replaces the legacy docs layout with a Fumadocs v2 site, adds a full OpenAPI-driven API reference, and ships new product guides with screenshots.Docs site structure (Fumadocs v2)
efficientai.json) covering agents, auth, call imports, evaluators, integrations, metrics, observability, personas, scenarios, voice bundles, and workspacesEnterprise page updates
https://docs.efficientai.cloud/docs/getting-started/authentication/(not localhost)contact@efficientai.cloudDocs UX & navigation
defaultOpen: true; trimmed Advanced nav to IAM + Alerting only (removed Reference, Monitoring, Engineering stubs from nav)Changelog generation
Enhanced changelog generation to parse linked PR descriptions and include structured sections when present:
What changedWhyHow to testBuild & dev fixes
next.config.mjs—output: 'export'only whenNODE_ENV === 'production'(fixes devgenerateStaticParamserrors)ensure-collections.mjs— regenerate.source/when content is newer than cachepage.tsx— guard whengenerateParams()returns emptydocs-shell.tsx—sidebar={{ defaultOpenLevel: 1 }}create_workspace.png,iam_workspaces.png); replaced with/screenshots/IAM/iam.pngand/screenshots/Alerts/alerts.pngWhy?
The previous docs site lacked structured product guides, a browsable API reference, and clear Enterprise/IAM/Alerting documentation. Reviewers and users had to dig through scattered pages or the codebase to understand capabilities and licensing boundaries.
This revamp:
npm run devHow to Test?
Run docs checks locally:
cd docs-fumadocs npm run validate:docs npm run check:links ./node_modules/.bin/fumadocs-mdx ./node_modules/.bin/next typegen ./node_modules/.bin/tsc --noEmit npm run build npm run verify:routesRun changelog generation:
cd docs-fumadocs npm run changelog:generateVerify navigation & new guides:
/docs/and confirm sidebar shows Quickstart, Platform, Integrations, Advanced (expanded)/docs/advanced/iam/— IAM screenshot renders, org/workspace role tables present/docs/advanced/alerting/— Enterprise callout visible, alerting screenshot renders/docs/platform/agent/and spot-check other Platform pages for screenshotsVerify Enterprise page:
/docs/enterprise/https://docs.efficientai.cloud/docs/getting-started/authentication/contact@efficientai.cloudVerify docs UI changes:
Community & contactfooter on docs pagesVerify API reference:
/docs/api-reference/and browse a few endpoints (e.g. agents, evaluators)Verify changelog enrichment:
/docs/changelog/v1.5.33/and confirm detailed PR sections render (What changed,Why,How to test)Verify dev mode:
cd docs-fumadocs npm run devgenerateStaticParams/output: exporterrors in devRelease Label
Select one semantic version bump intent for this PR:
major- breaking change, next release bumps major versionminor- backward-compatible feature, next release bumps minor versionfix- backward-compatible bug fix, next release bumps patch versionIf you do not have permission to apply labels, mention the intended release label here and a maintainer will set it.
Checklist
CONTRIBUTING.mdguide.