Skip to content

release(v2.3.0): readable estate layouts - #23

Open
ikelaiah wants to merge 4 commits into
mainfrom
release/v2.3.0
Open

ikelaiah wants to merge 4 commits into
mainfrom
release/v2.3.0

Conversation

@ikelaiah

Copy link
Copy Markdown
Owner

Summary

  • Auto arrange on first parse (Reset still returns to declaration order).
  • Port-anchored orthogonal routing through card-free layout gutters, with band corridors and an outer channel for long multi-band edges; clamped gutters under compact spacing. Zero path/card intrusions verified on DB2 sample, 300-table chain, and sampled 800-table chain.
  • Stronger crossing reduction: median sweeps + monotonic adjacent transpose, inversion-counted crossings reported in the status line.
  • Direction LR/TB/Auto (auto fits 16:9 better) and Spacing Compact/Normal/Roomy presets.
  • Pinning (per-card diamond, Unpin all) with deterministic de-overlap for unpinned cards.
  • Downstream banding for isolated tables and sourceless views.
  • Release prep: version 2.3.0, CHANGELOG, docs/releases/v2.3.0.md, docs/metrics-v2.3.0.json.

Test plan

  • npm run typecheck, npm run build, npm run test:file, npm run metrics
  • Golden browser suite tests/index.html: 220/220 (schema suite 35/35 including orientation, pinning, spacing, banding, and 300-table fixtures)
  • UI suite (served): 31/31; security suite: pass
  • ERD routing smoke: 0 intrusions on DB2, 300-chain (300/300), 800-chain (sampled 200); pin held across LR→TB re-arrange
  • npm run package:smoke: procflow-v2.3.0.zip structure and local-file startup pass

Notes

  • Structured card-safe routing applies to LR layouts; TB uses the best-effort orthogonal router.
  • Deterministic near-optimal layout, not a minimum-crossing guarantee.

A freshly parsed schema now starts in the deterministic layered layout; Reset still returns to declaration order, and any drag, restore, or import keeps manual positions.
…ning

1) Edges now anchor at the referenced FK column row and route orthogonally through inter-column gutters with per-parent bundling; self-loops anchor at their rows. 2) Ordering uses median sweeps plus a monotonic adjacent-transpose pass, counts crossings with inversion counting, and supports LR/TB/auto orientation (auto picks the direction that fits 16:9 better). 3) Pinned entities (diamond in the card header, Unpin all in the Layout menu) keep their exact positions through Auto arrange; unpinned cards shift deterministically to avoid overlaps. First-parse auto-arrange and the status line report crossings and direction.
Routing: auto layouts now route every edge through card-free layout gutters and band corridors with a fallback best-effort router for manual layouts. Long edges spanning multiple bands use band gaps plus an outer vertical channel, and gutters are clamped for compact spacing. Verified zero path/card intrusions on the DB2 sample, a 300-table chain, and a sampled 800-table chain. Layout: sourceless views and isolated tables move to a downstream band, layout results expose bands, and a Spacing preset (Compact/Normal/Roomy) scales gaps deterministically.
Version 2.3.0: first-parse auto arrange, port-anchored orthogonal routing through card-free gutters with multi-band outer channels, median+transpose crossing reduction with reported counts, LR/TB/Auto direction, position pinning with deterministic de-overlap, spacing presets, and downstream banding for isolated entities. Includes the v2.3.0 release note and metrics snapshot.
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