Skip to content

Conversation

@Daan0709
Copy link
Contributor

@Daan0709 Daan0709 commented Jan 14, 2026

  • Fixed issue where 'succes' handletypes could be duplicated
  • Fixed issue where 'can drop here' text would linger on elements if the dragged element was dropped onto the canvas
  • Improved xml to flow translation cases, such as issues with edge generations

All adapters must follow the rules below when generating edges (The links between nodes):

1. Explicit Forward Edges

  • Every <Forward> element must always generate an edge.
  • The edge connects the current node (source) to the target specified in the <Forward> element.
  • The type and index of the source handle should reflect the order of the forwards.

2. Implicit Pipeline Edges

  • For nodes within the <Pipeline>, edges are generated top-to-bottom to simulate the natural flow.
  • Skip creating an implicit edge in the following cases:
    1. The current node has one or more <Forward> elements that target any other pipeline node.
    2. The current node has a <Forward> element targeting an exit node with state="SUCCESS".
  • Implicit edges ensure that pipeline execution flows correctly even if explicit forwards are missing, but never override explicit logic.

3. Implicit Success Exit Edge

  • If there is an exit node with state="SUCCESS":
    • And the last node in the pipeline does not already forward to any exit,
    • Then automatically generate an implicit edge from that last node to the success exit.
  • This guarantees that successful pipeline completions are always connected to the success exit.

Closes #180 , Closes #181, Closes #140

@Daan0709 Daan0709 self-assigned this Jan 14, 2026
@sonarqubecloud
Copy link

@Daan0709 Daan0709 marked this pull request as ready for review January 15, 2026 12:55
@Daan0709 Daan0709 requested a review from Matthbo January 15, 2026 12:55

if ('attributes' in data && data.attributes) {
const state = (data.attributes as Record<string, string>).state
return state?.toUpperCase() === 'SUCCESS'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kan je succes niet een const oid maken? want ik zie hem nu drie keer terug komen

}

// ----------------------------------------------------------------------------- HELPERS -----------------------------------------------------------------------------
function findSuccessExit(nodes: FlowNode[]): FlowNode | undefined {
Copy link
Contributor

@stijnpotters1 stijnpotters1 Jan 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Als je aan het begin van de method chain dit standaard naar bijvoorbeeld uppercase parsed hoef je niet meerdere keren in aparte functies voor beide uppercase of lowercase te checken

Copy link
Contributor

@stijnpotters1 stijnpotters1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nog wat feedback

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

4 participants