mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-02-07 21:35:34 -05:00
- Resolves #8782 ### Changes 🏗️ - feat(frontend/library): Use WS subscription to get real-time execution updates - feat(backend/ws_api): Send `GraphExecutionUpdate` on all new agent I/O - Include agent I/O in `GraphExecutionUpdate` (by subclassing `GraphExecution`) - Add `IO_BLOCK_IDs` to `.blocks.io` - feat(backend/ws_api): Add `subscribe_graph_executions` method to WebSocket API - feat(backend): Withhold `GraphExecution.node_executions` from requests by non-graph-owners - Split `GraphExecutionWithNodes` off of `GraphExecution` - Use `GraphExecution` as much as possible, as it's a much cheaper query than `GraphExecutionWithNodes` - refactor(frontend): Make `GraphExecution.node_executions` optional - fix(frontend): Parse dates in responses of `/executions` and `/graphs/{graph_id}/executions` - refactor(frontend/library): Move sorting logic for agent runs list from `AgentRunsPage` to `AgentRunsSelectorList` - refactor(backend/ws_api): Clean up message handler implementations - refactor(backend/tests): Use `.data.execution.get_graph_execution(..)` directly instead of `AgentServer.test_get_graph_run_results(..)` Out-of-scope changes: - refactor(backend): Remove unnecessary query include from `.data.graph.get_graph_metadata(..)` Demo: https://github.com/user-attachments/assets/8ea6225d-7334-49cb-a522-83f153d840da ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - Go to `/library/agents/[id]` for an agent with inputs and outputs - Draft and run a new run - [x] -> should appear in the list of runs at the top - [x] -> should be selected as soon as the request finishes - [x] -> new I/O should appear as it is generated - [x] -> status should be updated in real-time (both in list and in adjacent details view) - Click "Run again" - [x] -> should appear in the list of runs at the top - [x] -> should be selected as soon as the request finishes - [x] -> new I/O should appear as it is generated - [x] -> status should be updated in real-time (both in list and in adjacent details view) - Click "Open in builder" under "Agent actions"; run the agent from the builder - [x] -> should work the same as before - [x] -> node I/O should appear in real-time - [x] -> node execution statuses should update in real-time