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.
Main repository gates
Section titled “Main repository gates”bun run typecheckbun run typecheck:scriptsbun run lintbun run format:checkbun run testbun run buildbun run budget:checkbun run runtime:check-privateRun 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.
Browser checks
Section titled “Browser checks”bun run test:e2eBrowser tests cover live-local routes, agent and extension workflows, responsive behavior, canvases, and public-demo isolation. Keep generated reports and screenshots untracked.
Public demo
Section titled “Public demo”bun run demo:build:pagesbun run demo:scan:pagesbun run demo:budget:pagesThe demo scan checks the static privacy boundary. It is not proof that local agents, collectors, Dream, Voice, or writes are ready.
Documentation site
Section titled “Documentation site”bun run docs:scanbun run docs:checkbun run docs:buildbun run docs:test:e2ebun 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.
Deployment proof
Section titled “Deployment proof”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
Section titled “Coverage”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.