v103.1.0lumaweave2026-06-02

Tile docking schema + resolution layer — docked/floating model, viewport-relative, 9 unit tests, unwired

Builds the type schema and position math for a docked/floating tile model that fixes the off-viewport bug at its root. Docked tiles derive position from anchor+slot+live viewport (cannot strand). Floating tiles clamp persisted x/y on load/resize. Resolution layer is isolated — nothing rendered yet.

v103.1.02026-06-02
  • ·tile.types.ts: mode "docked"|"floating" on TileLayoutEntry; slot on TileAnchor for edge-index-based docking
  • ·tileUtils.ts: three pure functions (viewport passed in, NOT read from window): clampToViewport, resolveDockedPosition (cumulative slot stacking + height-cap + overflow flag), resolveLivePosition (mode dispatch — the single function .1.1 will call)
  • ·THE BUG PROOF: x:3092 on VP_1400 clamps to ≤1112 by construction; right edge on 3 viewport widths (1400/3400/800) gives 3 different x values — never frozen
  • ·9 Playwright unit tests including slot stacking, overflow/fairShare cap, and the stranded-tile clamp
  • ·computeAnchorPos kept (back-compat until .1.1 migrates callers); no rendering changes