Skip to content

docs: revamp docs site and api reference - #127

Merged
TEJASNARAYANS merged 14 commits into
mainfrom
doctor
Sep 22, 2026
Merged

TEJASNARAYANS merged 14 commits into
mainfrom
doctor

Conversation

@aadhar-EAI

@aadhar-EAI aadhar-EAI commented Sep 18, 2026 •

Copy link
Copy Markdown
Collaborator

What Changed?

This PR is a major docs revamp on the doctor branch — 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)

  • Quickstart — end-to-end onboarding guide
  • Platform — product guides for agents, personas, scenarios, evaluators, evaluation suites, metrics, prompts, playground, observability, and setup (with screenshots)
  • Integrations — provider-specific pages (ElevenLabs, Plivo, Retell, Smallest, Vapi, Vobiz)
  • Advanced — new section (expanded by default) with:
    • IAM — org/workspace roles, membership, custom roles, Enterprise IAM
    • Alerting — threshold rules, Slack/email notifications, alert history (Enterprise feature)
  • API reference — generated from OpenAPI spec (efficientai.json) covering agents, auth, call imports, evaluators, integrations, metrics, observability, personas, scenarios, voice bundles, and workspaces
  • Changelog — versioned release pages (v1.5.4–v1.5.33) with enriched PR context
  • Enterprise — BSL licensing overview and open-source vs Enterprise comparison table

Enterprise page updates

  • Added ✅ to every Enterprise column cell in the comparison table for quick visual scanning
  • Authentication guide links now point to https://docs.efficientai.cloud/docs/getting-started/authentication/ (not localhost)
  • Licensing contact updated to contact@efficientai.cloud
  • Removed redundant sections: "Open-source limits (EFF-70)" and "Enterprise-only capabilities (any Enterprise tier)"

Docs UX & navigation

  • Community & contact footer on docs pages (GitHub issues, Discord)
  • Top nav — GitHub link and light/dark theme toggle moved to the right
  • Sidebar — Advanced section uses defaultOpen: true; trimmed Advanced nav to IAM + Alerting only (removed Reference, Monitoring, Engineering stubs from nav)
  • README — Discord added to hero quick links and Support section
  • New screenshots for Agents, Evaluators, Metrics, Personas, Playground, Prompts, IAM, and Alerts

Changelog generation

Enhanced changelog generation to parse linked PR descriptions and include structured sections when present:

  • What changed
  • Why
  • How to test

Build & dev fixes

  • next.config.mjs — output: 'export' only when NODE_ENV === 'production' (fixes dev generateStaticParams errors)
  • ensure-collections.mjs — regenerate .source/ when content is newer than cache
  • page.tsx — guard when generateParams() returns empty
  • docs-shell.tsx — sidebar={{ defaultOpenLevel: 1 }}
  • Fixed MDX hydration errors and removed broken screenshot refs (create_workspace.png, iam_workspaces.png); replaced with /screenshots/IAM/iam.png and /screenshots/Alerts/alerts.png

Why?

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:

  • Improves discoverability — Platform, Integrations, and Advanced guides follow a consistent format with screenshots
  • Documents Enterprise gating — IAM multi-member limits, alerting, and feature comparison are explicit
  • Enables self-serve API usage — OpenAPI-generated reference with copy-paste examples
  • Improves release transparency — Changelog pages preserve PR rationale and test steps
  • Fixes dev ergonomics — Static export and collection caching no longer break local npm run dev

How to Test?

  1. 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:routes
  2. Run changelog generation:

    cd docs-fumadocs
    npm run changelog:generate
  3. Verify navigation & new guides:

    • Open /docs/ and confirm sidebar shows Quickstart, Platform, Integrations, Advanced (expanded)
    • Open /docs/advanced/iam/ — IAM screenshot renders, org/workspace role tables present
    • Open /docs/advanced/alerting/ — Enterprise callout visible, alerting screenshot renders
    • Open /docs/platform/agent/ and spot-check other Platform pages for screenshots
  4. Verify Enterprise page:

    • Open /docs/enterprise/
    • Confirm every Enterprise column cell has ✅
    • Confirm auth links go to https://docs.efficientai.cloud/docs/getting-started/authentication/
    • Confirm licensing contact is contact@efficientai.cloud
    • Confirm removed sections ("Open-source limits", "Enterprise-only capabilities") are gone
  5. Verify docs UI changes:

    • Confirm Community & contact footer on docs pages
    • Confirm top nav has GitHub + theme toggle on the right
  6. Verify API reference:

    • Open /docs/api-reference/ and browse a few endpoints (e.g. agents, evaluators)
    • Confirm request/response schemas render
  7. Verify changelog enrichment:

    • Open /docs/changelog/v1.5.33/ and confirm detailed PR sections render (What changed, Why, How to test)
  8. Verify dev mode:

    cd docs-fumadocs
    npm run dev
    • Confirm no generateStaticParams / output: export errors in dev
    • Navigate to Advanced → IAM and Alerting without 500s

Release Label

Select one semantic version bump intent for this PR:

  • major - breaking change, next release bumps major version
  • minor - backward-compatible feature, next release bumps minor version
  • fix - backward-compatible bug fix, next release bumps patch version
  • No label (defaults to patch release)

If you do not have permission to apply labels, mention the intended release label here and a maintainer will set it.

Checklist

  • I have read the CONTRIBUTING.md guide.
  • My code follows the project's style guidelines.
  • I have added tests that prove my fix is effective or my feature works.
  • I have updated documentation where needed.

Co-authored-by: Cursor <cursoragent@cursor.com>
@greptile-apps

ghost commented Sep 18, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The changes since the previous review appear safe to merge, with no new blocking failures identified.

Findings

  1. P2 Workspace scope is overstated ▶
  2. P2 Public examples require credentials ▶
  3. P2 Generated collections can stay stale ▶
  4. P2 Template Prompts Replace Changelogs ▶
  5. P2 Unsupported nCr Suite Math ▶
Summary

The latest changes correct the alerting and IAM guidance identified during the previous review.

  • Documents the five-minute alert schedule and the required platform queue worker.
  • Clarifies the different RBAC behavior of user-bound and legacy unbound API keys.
  • Applies the API-key clarification consistently to both IAM and workspace documentation.

Reviews (14) · Last reviewed commit: "feat: updating minor doc stuff"

Comment thread docs-fumadocs/package.json Outdated
Comment on lines +111 to +115
if (publicRoutes.has(opKey)) {
nextOperation.security = [];
} else {
nextOperation.parameters = addWorkspaceHeader(nextOperation.parameters);
}

ghost Sep 18, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Workspace scope is overstated

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!

@greptile-apps

This comment has been minimized.

Tejas Narayan and others added 2 commits September 19, 2026 14:55
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>
Comment thread docs-fumadocs/scripts/generate-changelog-nav.mjs
Comment on lines +263 to +264
lines.push(' -H "Authorization: Bearer <token>" \\');
lines.push(' -H "X-API-Key: <api-key>" \\');

ghost Sep 21, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

Aadhar Singh Bhadauria and others added 3 commits September 21, 2026 11:24
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>
Comment on lines +11 to +15
function isValidCollectionsFile() {
if (!fs.existsSync(serverFile)) return false;
const content = fs.readFileSync(serverFile, 'utf8').trim();
return content.length > 0 && content.includes('export const docs');
}

ghost Sep 21, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 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>
Comment on lines +89 to +90
const text = linkifyUrls(lines.join('\n').trim());
if (text) return text;

ghost Sep 22, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 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>
@greptile-apps

ghost commented Sep 22, 2026

Copy link
Copy Markdown

Want your agent to iterate on Greptile's feedback? Try greploops.

Co-authored-by: Cursor <cursoragent@cursor.com>
Comment on lines +23 to +24
If you first choose subsets from larger candidate pools, that selection stage can be modeled with
nCr, then expanded into persona-scenario run pairs.

ghost Sep 22, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Unsupported nCr Suite Math

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.

Aadhar Singh Bhadauria and others added 2 commits September 22, 2026 12:12
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@TEJASNARAYANS TEJASNARAYANS added the fix Fix version release label Sep 22, 2026
Comment thread docs-fumadocs/content/docs/(docs)/advanced/alerting.mdx Outdated
Comment thread docs-fumadocs/content/docs/(docs)/advanced/iam.mdx Outdated
@TEJASNARAYANS
TEJASNARAYANS self-requested a review September 22, 2026 13:10
@TEJASNARAYANS
TEJASNARAYANS merged commit c85d5ed into main Sep 22, 2026
@TEJASNARAYANS TEJASNARAYANS mentioned this pull request Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix Fix version release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants