feat(ui): bring back make sidebar resizable with drag handle and persisted width - #10795
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4142951a6a
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| window.addEventListener('mousemove', handleMouseMove); | ||
| window.addEventListener('mouseup', handleMouseUp); |
There was a problem hiding this comment.
Keep resize events out of embedded MCP iframes
When resizing across a chat that contains an MCP app, the cursor can enter the sandboxed iframe created in ui/desktop/src/components/McpApps/McpAppRenderer.tsx:357. Mouse events over an iframe are delivered to the iframe's own window, so these parent-window listeners can miss the final mouseup; isResizing/isDragging then stay true and later mouse moves continue resizing. Add a temporary drag overlay or capture/lost-capture cleanup instead of relying only on parent window events.
Useful? React with 👍 / 👎.
|
Also see #10663 for more sidebar fun |
* origin/main: (58 commits) Handle MCP tool list change notifications fix: restore final_output_tool when agent is recreated after LRU eviction (#10793) feat(ui): bring back make sidebar resizable with drag handle and persisted width (#10795) docs: document auto-injected GOOSE_SHELL flags (#10759) feat: surface output-token-limit info (#10831) fix(desktop): avoid O(n²) cloning during session load (#10665) feat: add interactive menu for single select elicitations (#10327) fix(acp): prefix child stderr log target so it passes the default goose=info filter (#10901) chore (codex-acp): migrate to @agentclientprotocol/codex-acp (#10923) style: add dark mode inline code styling for message bubbles (#10861) docs: clarify macOS sandbox feature was removed in post-v1.25.0 cleanup (#10900) fall back to static model list only for non-models payloads (#10189) Remove CLI project support (#10838) fix(anthropic): add claude-sonnet-5 and claude-fable-5 to known models list (#10865) fix: stdio extensions silently skipped when name missing or env: used in config (#10773) feat(desktop): show session metadata on sidebar chat hover (#10663) fix(serve): start scheduler at startup instead of first ACP connection (#10766) fix: respect disabled builtin extensions (developer) at session start (#10223) fix: parse PyPI requirements for OSV checks (#10510) fix(telegram): contain voice file extensions (#10456) ... # Conflicts: # Cargo.lock # crates/goose/src/agents/extension_manager.rs # crates/goose/tests/mcp_replays/npx-y@modelcontextprotocol_server-everything@2026.1.14
Summary
Restores the resizable sidebar (originally in #7816, removed in #9353). Drag the right edge of the nav panel to resize between 160–400px; width persists across sessions via localStorage. Spring animation is bypassed during drag for smooth resizing.
Testing
manual
Screenshots/Demos (for UX changes)
Screen.Recording.2026-07-29.at.9.29.59.PM.mov