Skip to content

Go to Error: from any view, to where a run failed deep in the hierarchy - #70

Merged
endrix merged 1 commit into
mainfrom
feat/go-to-error
Oct 2, 2026
Merged

endrix merged 1 commit into
mainfrom
feat/go-to-error

Conversation

@endrix

@endrix endrix commented Oct 2, 2026

Copy link
Copy Markdown
Owner

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:

  • a node merely named like the one that failed was marked;
  • the nested workflow containing the failure was not marked;
  • there was no way to get from the root to the failure.

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):

  • in the failure's own view, the actor that failed;
  • in an ancestor view, the nested workflow containing it, which gets wf:errorWithin (what lies inside it on the way down).

The root carries wf:errorPath. The overlay loader keeps entityInstancePath; 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.

  • goToErrorAction builds the trail to the failing view from the hierarchy outline (wf:hierarchy).
  • The client opens that view and selects and centers the node that failed once it has loaded (FocusAfterLoadService, a model-root listener).
  • It is not offered in the view where the failure already shows, or without a hierarchy.

Shared helpers. hierarchyEntryAt / hierarchyTrailTo move 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 / CenterAction from @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): errorInView at 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

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
@endrix
endrix merged commit 538c8b7 into main Oct 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant