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