P8-04: Integrate ELK (elkjs) for primary auto-layout with Schemeta constraints mapping #40

Closed
opened 2026-02-19 19:04:55 -05:00 by Rbanh · 2 comments
Owner

Goal:
Replace fragile custom placement heuristics with ELK layered layout.

Scope:

  • Build model->ELK graph transform (instances, ports/pins, edges).
  • Encode constraints: groups, alignment, near, lock behavior.
  • Preserve deterministic ordering/seeding.
  • Add fallback path for unsupported constraints.

Acceptance:

  • Auto Layout uses ELK as primary engine.
  • Dense and sample fixtures avoid vertical collapse pathologies.
  • Deterministic same-input same-output placement signatures.
Goal: Replace fragile custom placement heuristics with ELK layered layout. Scope: - Build model->ELK graph transform (instances, ports/pins, edges). - Encode constraints: groups, alignment, near, lock behavior. - Preserve deterministic ordering/seeding. - Add fallback path for unsupported constraints. Acceptance: - Auto Layout uses ELK as primary engine. - Dense and sample fixtures avoid vertical collapse pathologies. - Deterministic same-input same-output placement signatures.
Rbanh added this to the Phase 8 - React/ELK Core Refactor milestone 2026-02-19 19:05:14 -05:00
Author
Owner

Sprint 3 progress (local commit dc9c277, pending push):

ELK integration boundary scaffold landed in backend:

  • Added src/layout-elk.js runtime resolver (safe module loading + constructor normalization + cache).
  • Added layout engine request path in src/layout.js with deterministic fallback metadata.
  • Added compile response metadata in src/compile.js:
    • layout_engine_requested
    • layout_engine_used
    • layout_warnings
  • Added API/compile contract tests covering default path and ELK fallback determinism.

Status: this is the integration boundary/fallback stage, not full ELK placement activation yet.

Sprint 3 progress (local commit `dc9c277`, pending push): ELK integration boundary scaffold landed in backend: - Added `src/layout-elk.js` runtime resolver (safe module loading + constructor normalization + cache). - Added layout engine request path in `src/layout.js` with deterministic fallback metadata. - Added compile response metadata in `src/compile.js`: - `layout_engine_requested` - `layout_engine_used` - `layout_warnings` - Added API/compile contract tests covering default path and ELK fallback determinism. Status: this is the integration boundary/fallback stage, not full ELK placement activation yet.
Author
Owner

Closing as completed. ELK integration and engine plumbing are now active in backend execution path (layout_engine_used: "elk" when runtime available) via 46175ef, with deterministic fallback retained.

Closing as completed. ELK integration and engine plumbing are now active in backend execution path (`layout_engine_used: "elk"` when runtime available) via `46175ef`, with deterministic fallback retained.
Rbanh closed this issue 2026-02-20 01:34:53 -05:00
Sign in to join this conversation.
No Label
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Rbanh/schemeta#40
No description provided.