Skip to content

@anchor 'to: top' renders as a LEFT-side S-curve in Studio Pro; describe round-trips the authored sides so headless checks cannot see it #990

Description

@MohamedGamalEzzatAli

Summary

@anchor(from: bottom, to: top) on an edge between two same-column nodes renders in Studio Pro as an S-curve that enters the destination's LEFT side, not its top. describe echoes the authored sides back (from: bottom, to: top), so every headless check passes — mxcli check clean, mx check 0 errors — and the defect is only visible on the Studio canvas.

Environment

  • mxcli v0.20.0 (windows-amd64, release binary)
  • Mendix Studio Pro 11.12.1, MPR v2 project (created with mx create-project)

Minimal repro

CREATE MICROFLOW MyFirstModule.ACT_AnchorRepro ()
BEGIN
  @start(60, 200)
  @position(260, 200)
  LOG INFO 'top';
  @position(260, 360)
  @anchor(from: bottom, to: top)
  LOG INFO 'mid';
  @position(260, 520)
  RETURN;
END;

mxcli exec succeeds; mxcli describe microflow echoes the annotation verbatim:

  @position(260, 360)
  @anchor(from: bottom, to: top)
  log info node 'Application' 'mid';

Expected

Both activities sit at x = 260. An edge that leaves the source's bottom and enters the destination's top should render as a straight vertical line.

Actual (Studio Pro 11.12.1 canvas)

The anchored edge leaves near the source's bottom-left and enters the destination's left side, drawn as an S-curve. The same pattern reproduces in a larger validation microflow we authored: every edge written with to: top attaches on the canvas at the destination's LEFT, consistently across two flows (a microflow-call -> split edge and a split-true -> validation-feedback edge). Un-anchored edges in the same flows attach normally.

This suggests the writer maps the named side to the wrong stored connection port (top -> the port Studio treats as left), while the reader maps it back symmetrically — which is why the describe round-trip cannot see it.

Secondary observation

describe also emits a per-case split anchor form that mxcli syntax microflow layout does not document:

  @anchor(true: (to: top))

If that form is intentional, a line in the layout syntax topic would help; if not, it may be related to the same side-mapping.

Impact

Layout authored via MDL looks correct in every headless view (check, describe, coordinates) and wrong on the canvas a human actually opens — the class of defect that erodes trust in scripted authoring. Happy to test a fix build on this project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions