Skip to content

Testing and release

Use focused checks while iterating, then run the broad gates appropriate to the change. A passing unit suite does not replace browser proof for a visual or end-to-end workflow.

Terminal window
bun run typecheck
bun run typecheck:scripts
bun run lint
bun run format:check
bun run test
bun run build
bun run budget:check
bun run runtime:check-private

Run bun audit --audit-level high for dependency-sensitive changes. Use the focused Vitest module or Playwright file that owns the behavior before the full suite.

Terminal window
bun run test:e2e

Browser tests cover live-local routes, agent and extension workflows, responsive behavior, canvases, and public-demo isolation. Keep generated reports and screenshots untracked.

Terminal window
bun run demo:build:pages
bun run demo:scan:pages
bun run demo:budget:pages

The demo scan checks the static privacy boundary. It is not proof that local agents, collectors, Dream, Voice, or writes are ready.

Terminal window
bun run docs:scan
bun run docs:check
bun run docs:build
bun run docs:test:e2e

bun run docs:release-check runs the production build plus the browser and accessibility suite. The build also validates internal links, search output, the real 404 page, static security headers, and draft exclusion.

A local build proves the static artifact, not the hosted deployment. Production claims require the matching platform check, smoke test, and rollback path. Current public surfaces are independently deployed static sites, while the AI OS host remains a local product with an optional Worker-oriented build.

Coverage counts first-party source rather than only imported test modules. Do not lower thresholds silently. Browser-owned visual surfaces can be excluded from line coverage only when their meaningful behavior has focused browser proof.