2872d072cb
* fix(web): recalculate dockview layout after fast-path session switch The fast path in tryFastSessionSwitch removed ephemeral panels but never called api.layout() to redistribute column widths, leaving a gap on the right side of the screen. Both slow-path branches already make this call. * test(web): add regression test for fast-path layout call Verifies that performSessionSwitch calls api.layout() on both the fast path and slow path, preventing the squished-layout regression. * test(web): cover saved-layout fast path branch * fix(web): replace no-explicit-any cast in test * fix(web): fix test isolation with mockReturnValueOnce Use mockReturnValueOnce and clearAllMocks for proper test isolation between fast-path and slow-path test cases. * test(web): fix mock shape to match LayoutGroupIds type