mark preserve-sibling-sizes resolved

This commit is contained in:
2026-08-07 10:41:32 +00:00
parent abea7a3a3d
commit 34b40cb094
+7 -1
View File
@@ -479,8 +479,14 @@ work disagree permanently about the roster, with neither told — a direct contr
the next mutation composes on top of the stale tree. So `refetchOnMount: false` (splitting a panel
mounts a fresh consumer, which is exactly when a write is in flight), `refetchOnReconnect: false`,
and `refetchOnWindowFocus` gated on a module-level in-flight count plus a 2 s quiet period.
- [ ] **Preserve sibling sizes on split.** `splitInner`/`insertPanel` redistribute evenly
- [x] **Preserve sibling sizes on split.** `splitInner`/`insertPanel` redistribute evenly
(`100 / newChildren.length`), so one split discards carefully tuned proportions.
**Resolved `abea7a3`** — the new sibling takes half of the *target's* size and nothing else moves.
One helper serves both call sites, because the drop path (`movePanel` → `insertPanel`) carried the
identical bug. Two of the three tests were already in `layout-utils.test.ts` asserting the even
split, written to the old behaviour deliberately; they now assert the new one. The third documents
the interaction worth knowing: `removePanel` renormalises the group as the panel leaves, so a move
reads as renormalise-then-halve, not halve alone.
- [x] **`tpl-N` panel ids collide across dashboards.** `DashboardPreview.tsx:25-26` —
`let tplCounter = 0; const tplUid = () => \`tpl-${++tplCounter}\`` — module-level, no entropy,
resets every page load. Two dashboards created from templates after a reload hold panels with