From 34b40cb094238b9469ad146ed94a8d56ad70e252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Fri, 7 Aug 2026 10:41:32 +0000 Subject: [PATCH] mark preserve-sibling-sizes resolved --- docs/workspace-panel-todo.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/workspace-panel-todo.md b/docs/workspace-panel-todo.md index f9e657fb..2492538a 100644 --- a/docs/workspace-panel-todo.md +++ b/docs/workspace-panel-todo.md @@ -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