Docs
Changelog

v0.9.x

All v0.9 releases

v0.9.0 — March 27, 2026

Features

  • feat(api): Public API v1 controllers + Swagger — full CRUD for organizations, members, invitations, roles, API keys with OpenAPI docs (#520)
  • feat(rate-limit): add API key rate limiting tier — per-key configurable rate limits (#521)
  • feat(cli): CLI package + direct token auth — @repo/cli with API key authentication (#524)
  • feat(jobs): queue provider setup + worker infrastructure — pg-boss integration with email queue + DLQ (#525)

Fixes

  • fix(api): address V1 public API review findings (#523)
  • fix(api): review findings + queue module artifacts (#526)
  • fix(dev): ensure Ctrl+C cleanly kills all dev processes (#539)
  • fix(docs): use repo root as Vercel project root (#540)
  • fix(docs): replace nested <a> in nav title with span + nav.url (#541)
  • fix(web): restore docs BookOpen icon + allow localhost in env URL validation (#542)
  • fix(preview): use custom domain for staging branch APP_URL (#493)
  • fix(web): sync /talks redirect from main (#497)

Changed

  • refactor: simplify .env configuration — reduce ~60 vars via derivation and presets (#499)
  • refactor: replace hardcoded app name with configurable env vars (#496)
  • refactor(types): namespace @repo/types into shared/api/ui sub-paths (#508)
  • refactor(api): extract SessionEnrichmentService from AuthService (#509)
  • refactor(api): introduce repository pattern with Consent module as exemplar (#510)
  • refactor(api): repository ports for FeatureFlags, Audit, SystemSettings (#511)
  • refactor(api): extract repository ports for User, RBAC, ApiKey, Org (#512)
  • refactor(api): per-domain exception filters, RLS bypass lint rule, import boundary enforcement (#515)
  • refactor(api): replace $inferSelect with domain types in port interfaces (#516)

Documentation

  • docs: add backend design quality artifacts and ADR 005 (#514)
  • docs: improve readme and contributing quality (#518)

Chores

  • chore: add community health files (#519)
  • chore: populate dev-core.yml, fix test:e2e env loading (#500)
  • chore: enable typescript-lsp plugin (#517)