P9-01: ELK-first placement pipeline with strict flow lanes #49

Closed
opened 2026-02-19 23:28:00 -05:00 by Rbanh · 3 comments
Owner

Scope:

  • Make ELK the default placement path for auto layout and tidy.
  • Encode directional lanes (power top, signal core, ground bottom) as hard constraints.
  • Add group-aware lane packing so cluster members stay coherent.
  • Guarantee deterministic node ordering seeds.

Acceptance:

  • No vertical-collapse/stack artifacts on canonical fixtures.
  • Improved spacing and bounded density per lane.
  • Same input -> same placements in repeated runs.
Scope: - Make ELK the default placement path for auto layout and tidy. - Encode directional lanes (power top, signal core, ground bottom) as hard constraints. - Add group-aware lane packing so cluster members stay coherent. - Guarantee deterministic node ordering seeds. Acceptance: - No vertical-collapse/stack artifacts on canonical fixtures. - Improved spacing and bounded density per lane. - Same input -> same placements in repeated runs.
Rbanh added this to the Phase 9 - Layout & Readability Production Hardening milestone 2026-02-19 23:28:18 -05:00
Author
Owner

Progress push fc5f2fe (P9-01).

Layout engine updates:

  • Reworked group-origin seeding from fixed grid cells to rank/lane-driven origin planning.
  • Added deterministic origin packing with collision checks (computeGroupOrigins).
  • Added group footprint estimation for origin collision avoidance.
  • Added controlled horizontal fanout for same-rank groups to avoid vertical stack collapse.
  • Tuned lane banding/stride and fanout scaling to balance spread vs detour.

Validation:

  • npm test pass
  • npm run test:ui pass
  • Dense analog quality gate back under threshold (detour gate passing).
Progress push `fc5f2fe` (P9-01). Layout engine updates: - Reworked group-origin seeding from fixed grid cells to rank/lane-driven origin planning. - Added deterministic origin packing with collision checks (`computeGroupOrigins`). - Added group footprint estimation for origin collision avoidance. - Added controlled horizontal fanout for same-rank groups to avoid vertical stack collapse. - Tuned lane banding/stride and fanout scaling to balance spread vs detour. Validation: - `npm test` pass - `npm run test:ui` pass - Dense analog quality gate back under threshold (detour gate passing).
Author
Owner

Progress update (commit 128c5c6):

  • /layout/auto and /layout/tidy now request ELK by default via options (use_elk_layout: true) unless explicitly overridden.
  • applyLayoutToModel now routes through layoutAndRoute(...) with layout options, so engine selection and fallback behavior are unified with compile path.
  • Deterministic fallback remains active when ELK runtime is unavailable.

Current boundary:

  • Backend still uses native placement when ELK runtime is absent or unavailable; full ELK-coordinate execution path remains open as the final sub-step.
Progress update (commit `128c5c6`): - `/layout/auto` and `/layout/tidy` now request ELK by default via options (`use_elk_layout: true`) unless explicitly overridden. - `applyLayoutToModel` now routes through `layoutAndRoute(...)` with layout options, so engine selection and fallback behavior are unified with compile path. - Deterministic fallback remains active when ELK runtime is unavailable. Current boundary: - Backend still uses native placement when ELK runtime is absent or unavailable; full ELK-coordinate execution path remains open as the final sub-step.
Author
Owner

Completed by commit 46175ef.

Delivered:

  • Implemented backend ELK placement execution path in layoutAndRoute when runtime is available.
  • Added deterministic ELK graph transform and coordinate mapping to Schemeta placements.
  • Preserved strict fallback behavior with explicit warning codes:
    • elk_layout_unavailable_fallback
    • elk_layout_async_runtime_fallback
    • elk_layout_invalid_result_fallback
  • /layout/auto + /layout/tidy already request ELK by default (from prior sprint), now truly executed when supported.

Validation:

  • npm test pass
  • npm run test:ui pass
  • Added compile test coverage using sync mock ELK runtime (tests/fixtures/mock-elk-runtime.cjs) verifying layout_engine_used: "elk".
Completed by commit `46175ef`. Delivered: - Implemented backend ELK placement execution path in `layoutAndRoute` when runtime is available. - Added deterministic ELK graph transform and coordinate mapping to Schemeta placements. - Preserved strict fallback behavior with explicit warning codes: - `elk_layout_unavailable_fallback` - `elk_layout_async_runtime_fallback` - `elk_layout_invalid_result_fallback` - `/layout/auto` + `/layout/tidy` already request ELK by default (from prior sprint), now truly executed when supported. Validation: - `npm test` pass - `npm run test:ui` pass - Added compile test coverage using sync mock ELK runtime (`tests/fixtures/mock-elk-runtime.cjs`) verifying `layout_engine_used: "elk"`.
Rbanh closed this issue 2026-02-20 01:32:25 -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#49
No description provided.