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:
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.
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.describeechoes the authored sides back (from: bottom, to: top), so every headless check passes —mxcli checkclean,mx check0 errors — and the defect is only visible on the Studio canvas.Environment
mx create-project)Minimal repro
mxcli execsucceeds;mxcli describe microflowechoes the annotation verbatim: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: topattaches 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 asleft), while the reader maps it back symmetrically — which is why the describe round-trip cannot see it.Secondary observation
describealso emits a per-case split anchor form thatmxcli syntax microflow layoutdoes not document: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.