layouts: persist dragged dividers, split runs evenly

- core: Layout::split rebalances the same-direction run so visual
  siblings share width/height equally; new path helpers
  (set/ratio/has_split_at), clamp_ratio 0.05-0.95, same_structure.
- server: new tab.set_ratio method (targeted divider move, no
  whole-tree overwrite), with integration test incl. restart.
- gui: dividers report back after a 300ms settle, never mid-drag;
  reconciliation ignores ratios and moves live Paneds in place, so
  echoes never rebuild terminals or loop.
b8bfbe99e3Lucenx9 committed on 9/29/2026, 3:59:14 AMparent5717832
8 files changedLine totals unavailable