UI/UX improvements around fork operations and progress visualizations - #219
UI/UX improvements around fork operations and progress visualizations#219ArizmendiWan wants to merge 11 commits into
Conversation
Signed-off-by: ArizmendiWan <2311602492@qq.com>
- Refactor popover positioning logic for better UX, enhance fork operation handling, and clean up unused code. - Update styles for node handles and improve layout options for compact nodes. Signed-off-by: ArizmendiWan <2311602492@qq.com>
… icons, and enhance node styles. Signed-off-by: ArizmendiWan <2311602492@qq.com>
# Conflicts: # diagram-editor/dist.tar.gz # diagram-editor/frontend/diagram-editor.tsx
# Conflicts: # diagram-editor/dist.tar.gz
|
This small visual change is a huge improvement in helping the diagram structure feel more intuitive to users. I would just recommend two tweaks:
|
…edge styling. Signed-off-by: ArizmendiWan <2311602492@qq.com>
|
Signed-off-by: ArizmendiWan <2311602492@qq.com>
Signed-off-by: ArizmendiWan <2311602492@qq.com>
Signed-off-by: ArizmendiWan <2311602492@qq.com>
…sual feedback for interaction completion. Signed-off-by: ArizmendiWan <2311602492@qq.com>
| } | ||
|
|
||
| #[derive(Resource, Default)] | ||
| struct OperationLifecycleTracker { |
There was a problem hiding this comment.
@ArizmendiWan I appreciate that you've taken the initiative to come up with this operation activity tracker since I haven't been able to set aside time for it, but I think the methodology here is more brute force than I'd prefer.
I haven't fully digested all the implementation details, but it looks to me like your approach is to put guardrails on the outside of all operations broadly to try to infer their levels of activity.
If we were to go a level deeper, I believe there will be more direct ways to assess the ongoing activities of an operation. For example, ActiveTasksStorage and ScopedSessionStorage tell us information about what is happening inside of an async service or a scope respectively. I was planning on adding a new method to the Operation trait to check an operation's liveliness, and each operation implementation can check their respective components as needed. This is similar to how Reachability is implemented.
My main concern about the approach you're using here is it might not generalize well. It makes assumptions from the outside about what can or cannot happen on the inside of an operation. For example, what if we some day have an operation where a single input message internally produces numerous parallel threads of operation which are not directly observable from the outside?
I'll try to find some time this week or early next week to implement what I have in mind.
This PR redesigns fork operations and streaming feedback in the diagram editor.
Current changes include:
Edit:
Updated the PR with following changes:
Demo
New circular nodes:
Left to right: Clone, Result, Unzip, Split, Join
New effects of message flow:
Screen.Recording.2026-08-21.at.01.53.11.mov
Screen.Recording.2026-08-22.at.13.45.01.mov
GenAI Use
We follow OSRA's policy on GenAI tools
Generated-by: Codex