- Shipped
- September 6, 2026 at 6:50 AM UTC
- Author
- Kamo
- Commit
- d02c595
Two things were wrong with the width gesture. **It moved the far edge.** `store.resize` writes a window's width and touches nothing else — not `dockX`, not the packing — so a window resized through it kept its left edge pinned and grew to the RIGHT. Dragging the left seam therefore scaled the right side, and the windows to the left never moved at all. The fix is one relayout: **************** resizes and then repacks, and because `layoutDock` packs right-to-left that anchors the dragged window's right left the same distance with the gutter intact — locked to the seam rather than pushed apart by it. Measured in a real browser against the real dock, three real chat windows, middle one dragged 140px left: right-hand neighbour 0/0/0, dragged window left -140 and right 0, left-hand neighbour left -140 and right -140. Gutters 5 and 5. My earlier verification could not have caught this. The probe computed each window's dockX from its own width, which made it right-anchored by construction, and every jsdom test stopped at the props. This one mounts the real provider and the real ToolDock and opens real windows, so the whole chain is under the pointer. **Most windows had no seam at all.** It was gated on the registry's `resizable`, which is `false` for chat, message, SMS and the softphone — the four windows a member lives in were the four with no width control, while their height moved with the rest of the row. `dockWidthFloor` reads that flag the way `floatFloor` already does: a floor, not a veto. A tool drawn for 460px can be made as wide as the member likes and never squeezed below the width it was designed at. A tool that declares its own minimum keeps that instead. The remembered per-tool width and the snapshot restore follow the same rule. Both failures are now pinned by tests that fail without the fix: `layoutDock` gets the row property the gesture exists to produce (right edge held, neighbours carried, gutters kept), and ToolDock gets an assertion about WHICH handler a seam drag reaches — the numbers were right all along, it was the wiring that was not.