Repository navigation
v0.40.7 — split layoutEngine + registry-only widgets
Tech-debt batch 5c — final batch of the June 2026 cleanup sweep (epic #161). Behavior-preserving.
- #157 — split
layoutEngine.tsintolib/layout/{placements,merge,pagination}.tsbehind a barrel; lifted Dashboard/WidgetLayout placement transforms into pure testedlib/layout/transforms.ts. Persisted layout shape + merge semantics unchanged (existing layoutEngine.test.ts 70/70 passes unchanged). - #155 —
WidgetDef.defaultVisibleflag; Dashboard derives the interval-widget lists from the registry (renamedavailableChartsAll→fullChartUniverse); "add a widget" is now registry-only.
isPlaced gating byte-identical (the #121/v0.40.2 surface). Verified on staging: saved-layout migration unchanged + force-mount all widgets renders clean (no fit overflow, 0 console errors). Docker test 1005; build green. No schema change.