Routes.py already publishes a StreamStart before calling the service. The SDK path filters the duplicate internally, but the non-SDK path did not, causing two StreamStart events to reach the frontend.
GET /api/graphs
autogpt_platform/CLAUDE.md
Getting Started (Released)