Data flow
AI orchestration & jobs
All AI runs server-side via backend/app/ai/. Browser never holds API keys. Jobs enqueue to Redis unless AI_SYNC_JOBS=true (dev only).
sequenceDiagram
participant A as Author
participant API as FastAPI
participant Redis as Redis
participant W as Worker
participant P as OpenAI
A->>API: POST /ai/author/run
API->>API: Feature flag + spend cap
API->>Redis: Enqueue job
W->>Redis: Dequeue
W->>P: Completion
W->>API: Artifacts + cost ledger
AI_MOCK_MODEforbidden whenAPP_ENV=productionAI_ENABLED=false— UI panels hidden; core editor intact