You're viewing v1 docs. The current version is v2.
Changelog
Changelog
Release history and feature updates for doxa
Usage-based billing#
- New hybrid usage-based billing with Stripe: flat monthly subscription per tier that includes a token allowance, plus metered overage. Tiers: Starter ($29/mo, 100K tokens included, $0.05/1K overage), Pro ($199/mo, 2M tokens included, $0.02/1K overage), Enterprise (custom).
- Usage dashboard at
/dashboard/[orgSlug]/usageshows tokens used, projected consumption, overage costs, breakdowns by source and model, and a 6-month history chart. - Stripe Checkout for new subscriptions and Billing Portal for managing/canceling — upgrades apply immediately (prorated), downgrades at period end.
- New internal margin monitor at
/dashboard/admin/marginsflags orgs where provider cost exceeds 70% of revenue. - LLM calls across RAG queries, embeddings, and doc-generation agent runs are metered per-org as
UsageEventrows with provider cost estimation. - Soft limits fire in-app notifications at 90% and 100% of the included allowance, with email delivery via Resend.
- Daily usage rollup cron (
/api/cron/usage-rollup) drains the Redis retry buffer, closes prior-monthUsagePeriodSummaryrows, reports incremental tokens to the Stripe meter, and checks soft limits. - New environment variables:
STRIPE_SECRET_KEY,STRIPE_WEBHOOK_SECRET,STRIPE_PRICE_*price IDs,STRIPE_METER_EVENT_NAME,RESEND_FROM,DOXA_ADMIN_EMAILS. Billing is a no-op whenSTRIPE_SECRET_KEYis unset. - New database models:
Subscription,UsageEvent,UsagePeriodSummary,Notification— with Prisma migrations. - Stripe products/prices/meter can be seeded idempotently via
pnpm --filter @doxa/billing stripe:seed.
Ask Docs (RAG search)#
- New Ask Docs dialog (⌘K) accessible from any project page. Ask natural-language questions about your documentation and get AI-generated answers citing specific pages and sections.
- Scope toggle — search the current project or all projects in the organization when the org has more than one project.
- Semantic search powered by Voyage AI (
voyage-3-lite, 512-dim embeddings) for relevance-ranked results. - Backend rate limiting (30 requests per minute per org, configurable via
ASK_RATE_LIMIT). - Streaming SSE responses with inline source citations linked to the rendered docs.
Docs search indexing#
- New Docs search settings page under project settings that shows the index status, chunk count, and a Re-index now button.
- Docs are automatically indexed when changes are pushed to GitHub (via the deployment pipeline) and when files are saved in the editor (fast-path, no cron wait).
- Backfill script available for initial indexing of existing projects:
pnpm --filter @doxa/dashboard exec tsx scripts/backfill-docs-search.ts. - Indexing runs via a cron job (
*/5 * * * *) that processes queued jobs with SKIP LOCKED to prevent double-processing. Failed jobs are retried up to 3 times. - New environment variables:
VOYAGE_API_KEY(required for production embeddings; mock fallback when unset),CRON_SECRET(protects/api/cron/process-index-jobs), andASK_RATE_LIMIT(per-org rate limit, default 30).
CLI#
- Sidebar gets a Usage & billing sub-nav item under each org's dashboard section.
- The
adminpath is reserved for internal tools: navigating to/dashboard/adminkeeps the org nav visible.
CLI#
doxa agentgains--docs-dir <dir>flag for pointing at a nonstandard docs folder when auto-detection picks the wrong one. Useful in monorepos where docs live underdoxadocs/,documentation/, orcontent/.- Docs
docs.jsonauto-discovery now searchesdoxadocs/,documentation/, andcontent/directories in addition todocs/and the project root. doxa dev --litepicks up shared@doxa/componentsstylesheets for a preview closer to the production renderer. HonorsDOXA_COMPONENTS_CSSenv var for a custom path.- Bundled
doxa-docsskill ships with the CLI and is synced to~/.config/opencode/skills/doxa-docs/SKILL.mdon agent runs. The skill is the single source of truth for agent documentation conventions.
Workflow specs#
- Workflows can now be defined in-repo via
.doxa/workflows/<name>.mdfiles. YAML frontmatter declares triggers (cron,pr_merged,pr_opened,push), source context repos, Slack notification channels, auto-merge, and extra skills. The markdown body serves as the agent prompt. The repo, not the dashboard, is the source of truth for what runs. @doxa/mdxships aparseWorkflowSpecparser that reads these files. The CLI agent prompt now includes the docs root path and explicit instructions for creating pages/tabs and updatingdocs.jsonnavigation.
Workflow engine#
- Batch + group scheduled code workflows: reads every PR merged since the last run, combines diffs, and asks the agent to group changes into a single docs update.
- Append-to-open-PR mode: tracks each workflow's open docs PR; subsequent runs commit onto the same branch instead of opening duplicate PRs. Cleared automatically when the PR closes.
- Chain + combine: after a code workflow updates a docs PR, enabled maintenance workflows run onto the same branch for one combined PR.
- Insights workflows: new
INSIGHTScategory with two seeded workflows that draft improvements from negative feedback and from questions readers most ask the AI assistant. - Source citations: PR diff context instructs the agent to cite source PRs and code files; linked docs PRs reference the source PR.
Live run streaming#
- Real-time SSE log streaming via Redis pub/sub. The workflow drawer shows a live console for in-progress runs.
- OpenCode runs via async spawn (streams output line-by-line, unblocks the event loop).
PR-opened docs-sync trigger#
- New
PR_OPENEDtrigger fires on PR opened, reopened, or synchronized (webhook). The agent reads the PR diff and opens a linked docs PR referencing the source PR.
Durable execution logs#
- Workflow run and deployment logs persisted in the database instead of only worker stdout.
- Worker logs every step (context, clone, agent provider, files changed, PR/commit/draft, success/failure).
- Deploy pipeline logs fetch, validate, import, and index into
Deployment.buildLog. - Workflow drawer and project-overview activity rows are expandable to show the full step log.
Dashboard redesign#
- Context-aware sidebar: org switcher at org level, grouped project nav (Automate, Insights, Admin) inside a project.
- Topbar gains a command-style search affordance and notifications.
- Org overview: time-aware greeting, quick-action tiles, project cards with live status and relative timestamps.
- Project overview: console with branded site hero, status panel, explore cards, and deployment activity table.
- New Deploy button triggers a deploy from the UI and polls deployment status until terminal.
CLI#
doxa broken-linksis now version-aware: registers version-root-stripped page keys so links inside versioned docs resolve correctly. Eliminates false positives when the same page exists under multiple version roots.doxa agentgains--stall-timeoutflag andDOXA_AGENT_STALL_MSenvironment variable to control the idle-output kill timer (default 180 seconds).- Agent retry logic now distinguishes genuine transport errors from normal agent path-correction messages, reducing unnecessary retries. Retryable errors include
ECONNREFUSED,ECONNRESET,ETIMEDOUT,fetch failed, andsocket hang up. doxa modelslists model aliases and the full set of available models from OpenCode.
Compatibility#
- Accept real Mintlify
docs.json: top-levelnavigationandapi.baseUrlare now optional. The renderer walksversions,languages, andtabstolerating absent navigation. - Monorepo rename from
docaitodoxa. Lockfile regenerated.
Initial release#
- Full pnpm + Turborepo monorepo scaffolding.
- Dashboard and docs-renderer apps.
@doxa/*packages:db,ui,ai,github,mdx,queue,sandbox.- Workflow runner worker.
- CLI (
doxa) with commands:
| Command | Description |
|---|---|
doxa new [directory] | Scaffold a docs project from the starter template |
doxa dev [--port] | Preview docs locally |
doxa agent ["task"] | Run the AI agent (OpenCode) on your local docs |
doxa models | List model aliases and available models |
doxa create <owner/repo> | Create a GitHub repo with a starter docs site |
doxa openapi-check <file> | Validate an OpenAPI spec |
doxa broken-links | Find broken internal links |
doxa llms [--site-url] | Generate llms.txt + llms-full.txt |
doxa version | Show the CLI version |
doxa update | Show update instructions |