Skip to content

fix(sgcr): relax source-side port spacing so fork in-line children stay straight#207

Merged
ivanmkc merged 1 commit into
masterfrom
fix/sgcr-source-port-spacing
Jun 22, 2026
Merged

fix(sgcr): relax source-side port spacing so fork in-line children stay straight#207
ivanmkc merged 1 commit into
masterfrom
fix/sgcr-source-port-spacing

Conversation

@ivanmkc

@ivanmkc ivanmkc commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Only TARGET-side ports (arrowheads) need PORT_STEP clearance; source-side ports were spaced 16px too, shoving a fork's in-line child off-centre so its narrow child face couldn't reach the port (diagonal connector despite centre-aligned nodes). Source ports now pack at 8px (still distinct) → the in-line child keeps the aligned port and runs straight. P5 untouched (only source ports relaxed). Stress fuzz 10,060 layouts ZERO violations, vitest 26/26.

…ay straight

Arrowheads sit at an edge's TARGET, so only target-side ports need the full
PORT_STEP arrowhead-clearance spacing. Source-side ports (no arrowhead) were
also spaced 16px apart, which shoved a fork parent's in-line child off-centre
(its narrow child face then couldn't reach the port → diagonal connector even
though parent and child were centre-aligned). Now source ports pack at a
smaller step (8px, still distinct), so the in-line child keeps the centre/
aligned port and its connector runs straight; off-axis children turn as before.

A port is 'target' (keeps PORT_STEP) iff it's the edge's arrowhead end here
(higher-rank end of a forward edge / lower-rank end of a reversed one; flat
edges conservatively keep the full step) — so P5 arrowhead clearance is
untouched. Verified: stress fuzz 10,060 layouts zero violations, vitest 26/26,
the arch demo's edge→api→svc→cache spine renders as one straight line.
@ivanmkc ivanmkc merged commit 64e7a10 into master Jun 22, 2026
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.

2 participants