Skip to content

feat: Make auto-layout deterministic and trust-boundary aware - #102

Merged
Hacks4Snacks merged 1 commit into
mainfrom
hacks4snacks/improvelayouthandling
Sep 2, 2026
Merged

feat: Make auto-layout deterministic and trust-boundary aware#102
Hacks4Snacks merged 1 commit into
mainfrom
hacks4snacks/improvelayouthandling

Conversation

@Hacks4Snacks

Copy link
Copy Markdown
Owner

Summary

  • Make auto-layout deterministic and trust-boundary aware, preserving containment while resizing boundaries and wrapping wide diagrams.
  • Deconflict flow labels and add layout --labels and non-writing layout --check modes.
  • Preserve authored label positions during .tm7 export.
  • Support NuGet and npm mirrors in Docker builds.

Why

Generated layouts could alter boundary-crossing semantics or produce overlapping labels. Container builds also required direct access to public package registries.

continue;
}

double offset = lane * options.LabelLaneSpacing;
Comment on lines +173 to +186
foreach ((int X, int Y) candidate in Candidates(connector, effective))
{
Rect option = label.CenteredOn(candidate.X, candidate.Y);
long cost = Cost(option, obstacles, placed);
if (cost < best)
{
best = cost;
chosen = option;
if (cost == 0)
{
break;
}
}
}
@Hacks4Snacks
Hacks4Snacks merged commit 0cb43fb into main Sep 2, 2026
9 of 10 checks passed
@Hacks4Snacks
Hacks4Snacks deleted the hacks4snacks/improvelayouthandling branch September 2, 2026 23:26
This was referenced Sep 2, 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