# Backend Integration and History Bridge This engine uses adapter-based backend integration so core runtime logic can run with or without an external backend service. ## Runtime Modes Configure with environment variables: - `BACKEND_MODE=auto|http|disabled` - `BACKEND_URL` - `BACKEND_TIMEOUT_SEC` - `HISTORY_ENABLED=true|false` Mode behavior: - `auto`: use HTTP backend adapter only when `BACKEND_URL` is set. - `http`: force HTTP backend adapter (falls back to null adapter when URL is missing). - `disabled`: force null adapter and run engine-only. ## Architecture - Ports: `core/ports/backend.py` - Adapters: `app/backend_adapters.py` - Compatibility wrappers: `app/backend_client.py` `Session` and `DuplexPipeline` receive backend capabilities via injected adapter methods instead of hard-coding backend client imports. ## Async History Writes Session history persistence is handled by `core/history_bridge.py`. Design: - transcript writes are queued with `put_nowait` (non-blocking turn path) - background worker drains queue - failed writes retry with exponential backoff - finalize waits briefly for queue drain before sending call finalize - finalize is idempotent Related settings: - `HISTORY_QUEUE_MAX_SIZE` - `HISTORY_RETRY_MAX_ATTEMPTS` - `HISTORY_RETRY_BACKOFF_SEC` - `HISTORY_FINALIZE_DRAIN_TIMEOUT_SEC`