Skip to content

release(v2.2.0): arrange and save the ERD layout - #22

Merged
ikelaiah merged 1 commit into
mainfrom
release/v2.2.0
Sep 18, 2026
Merged

ikelaiah merged 1 commit into
mainfrom
release/v2.2.0

Conversation

@ikelaiah

Copy link
Copy Markdown
Owner

Summary

  • Adds deterministic Auto arrange to the ERD page: layered parent→child flow with bounded barycenter crossing reduction, cycle-safe ordering, and views placed downstream of the tables referenced in their FROM/JOIN clause (declared layout hint only).
  • Adds band wrapping so wide/tall estates become readable: 800-table chain 3,192×16,208 and 799-leaf fan 3,192×11,480 instead of 217k-wide/128k-tall strips; layout ~53 ms / ~5 ms, zero overlaps.
  • Adds layout saving: opt-in Save/Restore/Forget in this browser, plus versioned Export/Import JSON keyed by a schema fingerprint (unmatched entities appended, never overlapped or dropped).
  • Reworks the canvas to absolute positions so dragged cards persist across re-renders, edits, Compact mode, and saved layouts; Reset returns to declaration order.
  • Release prep: version 2.2.0, CHANGELOG, docs/releases/v2.2.0.md, docs/metrics-v2.2.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 29/29 including 7 new layout fixtures: determinism, overlap-free, parent-before-child, view sources, file round-trip/rejection, 300-table bulk)
  • UI suite (served): 31/31; security suite: pass
  • 800-table page smoke: banded stage, 800 cards, Fit 5%, zoom-correct drag, save → auto-arrange → restore round-trip
  • npm run package:smoke: procflow-v2.2.0.zip structure and local-file startup pass

Notes

  • Auto arrange is deterministic near-optimal, not a minimum-crossing guarantee.
  • Layout is UI state: it does not affect analysis, Mermaid export, or the workspace snapshot.

Version 2.2.0: deterministic Auto arrange (layered parent->child flow, bounded crossing reduction, deterministic cycle handling, view sources from FROM/JOIN), band wrapping for wide and tall estates, opt-in browser layout save/restore and versioned export/import keyed by schema fingerprint, and an absolute-position canvas with persistent card dragging. Includes layout fixtures, the v2.2.0 release note, and the v2.2.0 metrics snapshot.
@ikelaiah
ikelaiah merged commit 6200254 into main Sep 18, 2026
6 checks passed
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