Local workflow and migrations
Install API dependencies with uv and UI dependencies with pnpm. Use Make targets for PostgreSQL, API, UI, the full Docker stack, logs, restart, and cleanup. Create and review Alembic migrations for schema changes before applying them.
Staging isolation
Staging uses the agent-farm-staging namespace and staging-suffixed images. Per-environment secrets use STAGING_ values, while selected shared accounts and keys remain common. The API K8S_NAMESPACE value must come from the release namespace or staging could create Agent resources in production.
Email operations
Transactional email uses Cloudflare Email Sending through one infrastructure adapter. Each environment sends from its own verified mail subdomain, while the account and API token are shared. Delivery is disabled when required configuration is absent, and the account-wide daily quota is shared by staging and production.
Versioning and deployment
API and UI image tags are explicit deployment inputs. Main uses latest and staging uses latest-staging. Chart version is a packaging version and changes only when chart templates or values change; documentation-only changes do not require an image or chart bump.
Monitoring and safety
The monitoring chart stays namespace-scoped and creates no RBAC. Run the monitoring check after alert or dashboard changes. Treat signing and encryption key rotation as migrations, preserve LiteLLM quota-aware rollout behavior, and use the deployment workflow instead of manually publishing mutable production tags.