Problem
#1888 added a GET /v1/email/init proxy to the Agent UI backend's sidecar router so consumers on the recommended entry point can confirm their LEMONADE_BASE_URL wiring. The provisioning verb — POST /v1/email/init, which streams model-pull progress — is still not proxied: the integration guide has to tell consumers to call it "directly on the sidecar", which is inconsistent with the backend being the single recommended /v1/email surface.
Outcome
POST /v1/email/init works through the backend proxy with the sidecar's streamed progress passed through, and the integration guide's migration note drops the sidecar-direct caveat.
Acceptance criteria
Scope & expectations
How to verify
HTTP API surface — curl -N -X POST http://127.0.0.1:4200/v1/email/init through the backend against a fresh Lemonade, showing streamed progress lines and the terminal guidance, plus the proxy unit-test output.
Problem
#1888 added a
GET /v1/email/initproxy to the Agent UI backend's sidecar router so consumers on the recommended entry point can confirm theirLEMONADE_BASE_URLwiring. The provisioning verb —POST /v1/email/init, which streams model-pull progress — is still not proxied: the integration guide has to tell consumers to call it "directly on the sidecar", which is inconsistent with the backend being the single recommended/v1/emailsurface.Outcome
POST /v1/email/initworks through the backend proxy with the sidecar's streamed progress passed through, and the integration guide's migration note drops the sidecar-direct caveat.Acceptance criteria
POST /v1/email/initon the backend forwards to the sidecar and streams the provisioning output through (chunked/SSE-style passthrough, not buffered-to-completion).docs/guides/email-integration.mdxmigration note updated (remove "(the GAIA backend proxies only the readiness GET...)").Scope & expectations
src/gaia/ui/email_sidecar/router.py,src/gaia/ui/email_sidecar/proxy.py,tests/unit/test_email_sidecar_router.py/test_email_sidecar_proxy.py, the one guide note./initimplementation (feat(agent-email): add /v1/init readiness+provisioning endpoint (validate Lemonade + model) #1795/feat(agent-email): add GET /v1/email/init readiness preflight (#1795) #1813); connector OAuth write routes (deliberately never proxied).SidecarHTTPErrorboundary for non-contract statuses; the streaming passthrough must not buffer multi-minute model pulls in memory.How to verify
HTTP API surface —
curl -N -X POST http://127.0.0.1:4200/v1/email/initthrough the backend against a fresh Lemonade, showing streamed progress lines and the terminal guidance, plus the proxy unit-test output.