Skip to content

tala: preserve enclosed routes when compound containers move - #2889

Merged
alixander merged 1 commit into
masterfrom
agent/tala-preserve-compound-routes
Sep 10, 2026
Merged

tala: preserve enclosed routes when compound containers move#2889
alixander merged 1 commit into
masterfrom
agent/tala-preserve-compound-routes

Conversation

@alixander

@alixander alixander commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Human


AI

When TALA chooses a compound layout, it moves containers as rigid blocks but redraws their internal edges. That can split a clean shared fan into separate branches even though the endpoints and obstacles inside the container have not moved relative to one another.

Preserve eligible enclosed routes from the ordinary layout, translated with their container, after selecting the compound layout. Keep the selected external routes and curve state, then reconsider automatic labels/icons and validate the completed result. Reuse requires the path and its labels to remain enclosed and its endpoints to attach to box borders. A failed optional refinement retains the selected layout; caller cancellation still propagates.

This is the first, independently reviewable route-preservation change. Placement selection and scoring remain unchanged.

Validation

  • TALA package tests, the full go test -race ./d2layouts/d2talalayout/... -count=1 -timeout=15m suite, and go vet ./d2layouts/d2talalayout/... pass. New regressions cover shared fans, nested containers, enclosure exclusions, fixed labels/icons, selected external curves, and refinement fallback/cancellation.
  • Normal full public TestE2E passes with acceptance disabled: 342 fixtures pass, 1 skips.
  • Replayed all previously reviewed collections against master 65a01bdeeb389d9750d39ae3eac6ef948b3112dd: 343 public contexts, 237 private fixture/benchmark input contexts, and 33 featured/blog contexts. Among 578 paired TALA renders, only the three comparisons below change visually. No new execution failures or geometry-audit findings.
  • The private input replay preserves its existing compiler-error case and includes three portable semantic assertions; it does not execute the private application's conversion layer, callbacks, or goldens.
  • The public elk_shim golden update changes only an edge's label percentage (00.32499998807907104) and the generated SVG namespace. Its image is unchanged. Dagre and ELK renders are unchanged.

Every visual change

Comparison Change
good/staging Two upper branches rejoin the shared horizontal trunks. Client/environment labels are anonymized only in the screenshot.
regressions/cluster_size_limit_2 Four internal branches regain shared fan-out/fan-in trunks.
txtar/azure-again-seed2 Two business-tier branches regain shared fan routing; two automatic load-balancer labels move to clear those routes.

All 4,035 shape positions and dimensions in the private replay are unchanged, as are all external routes. The screenshots use identical scales within each pair. Azure's existing public icons are embedded for faithful display; anonymization does not alter staging geometry or routes.

Click the screenshot to view all three before/after comparisons at full resolution (3000 × 7332).

All three route-preservation comparisons: master on the left, this PR on the right

@alixander alixander closed this Sep 8, 2026
@alixander
alixander deleted the agent/tala-preserve-compound-routes branch September 8, 2026 18:41
@alixander alixander changed the title tala: preserve enclosed routes when compound containers move Withdrawn Sep 8, 2026
@alixander
alixander restored the agent/tala-preserve-compound-routes branch September 9, 2026 05:48
@alixander alixander changed the title Withdrawn tala: preserve enclosed routes when compound containers move Sep 9, 2026
@alixander alixander reopened this Sep 9, 2026
@alixander
alixander merged commit 927dbc6 into master Sep 10, 2026
15 checks passed
@alixander
alixander deleted the agent/tala-preserve-compound-routes branch September 10, 2026 05:53
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.

1 participant