Go to Error: from any view, to where a run failed deep in the hierarchy - #70
Merged
Merged
Conversation
A run failing deep in a nested hierarchy showed its error only as a name, matched against whatever view was open: a node merely named like the one that failed was marked, the nested workflow containing the failure was not, and there was no way from the root to it. With the failure's instance path in the overlay (huawei-csl/wfpy#46), each view now marks the node the failure is in -- the actor that failed, or the nested workflow containing it, which carries `wf:errorWithin` -- and the root carries `wf:errorPath`. Right-clicking that nested workflow, or the canvas when the failure is out of view, offers "Go to Error": it opens the view the failure is in, at the trail a drill-down would give (built from the hierarchy outline), and selects the node that failed once the view has loaded (`FocusAfterLoadService`). The trail helpers move to the shared package so the server's menu and the client's outline build trails the same way. The outline panel imports SelectAction/CenterAction from @eclipse-glsp/protocol, as the rest of the client does. Claude-Session: https://claude.ai/code/session_015VK7fH1c4aKbexnq2QcuKU
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A run failing deep in a nested hierarchy showed its error only as a name, matched against whatever view was open. That had three problems:
Marking. With the failure's instance path in the overlay (huawei-csl/wfpy#46,
error.entityInstancePath), each view marks the node the failure is in (errorInView, shared):wf:errorWithin(what lies inside it on the way down).The root carries
wf:errorPath. The overlay loader keepsentityInstancePath; it used to rebuild the error with only name and message. A run whose error has no path is matched by name, as before.Go to Error. Right-clicking the nested workflow containing the failure, or the canvas when the failure is out of view, offers Go to Error.
goToErrorActionbuilds the trail to the failing view from the hierarchy outline (wf:hierarchy).FocusAfterLoadService, a model-root listener).Shared helpers.
hierarchyEntryAt/hierarchyTrailTomove to@dialogram/shared, so the server's menu and the client's outline build trails the same way.Also: the outline panel now imports
SelectAction/CenterActionfrom@eclipse-glsp/protocol, as the rest of the client does.Container parity: the baseline gains exactly the action handler and the focus service's two bindings. I diffed the composition before accepting them.
Tests: server (9):
errorInViewat each level, the trail, the mark on the containing workflow and not on a same-named node, the mark on the failed actor in its own view, the action, and menu items on the node and the canvas. Client (2): the handler's request and pending focus, and the focus service waiting for the right view and selecting once. All workspaces pass, with neutrality 5/5 and typecheck 5/5.https://claude.ai/code/session_015VK7fH1c4aKbexnq2QcuKU