-
Notifications
You must be signed in to change notification settings - Fork 44.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix non-snappy execution update on UI #8392
Comments
I’m not sure if I understood this issue correctly, If I am wrong please correct me: Suppose we have 3 inputs connected to one output node. The output node will generate 3 responses, one for each input pin. Currently, the output node waits for all three inputs to finish executing, and only after all of them have completed, it shows the final output (UI). However, what we need is for the output node to display each pin's output as soon as it is available (with the status marked as 'running'). Then, once all the outputs are completed, the status should change to 'completed'. |
@Abhi1992002 That is correct. Currently we are only updating on status transition, Queued -> Running -> Completed/Failed. See the usage of Some modification on data being published through a websocket, or the client code for handling its data, might also be needed to achieve this, so that we can avoid showing duplicated output data. |
@majdyz Just to clarify, should I make the changes to the backend so it broadcasts each pin’s execution update, or should I wait for the backend team to handle that functionality, and then I’ll update the UI accordingly? |
I think the backend change will only be these two lines of code: But introducing this will make the UI duplicate output because the output entry, on each production we publish the whole data, not the incremental ones: You can see for the same node execution the output will be duplicated, e.g: You can fork the shared branch (#8421), and test the StepThroughItem block with a hard-coded list value to reproduce the issue: |
What's the status of this? |
While transitioning from polling to web socket, the granularity of execution updates was significantly reduced from "updating on each produced output from node" to "updating on each node execution completion" (1 node execution can produce many outputs from different pins, through a long time).
This gives a really bad user experience on executing a long-running block, especially when running an agent/graph as a node will be introduced very soon.
The text was updated successfully, but these errors were encountered: