Skip to content

feat: add resizable widgets bar with persisted width#2888

Closed
rlohne wants to merge 1 commit intowavetermdev:mainfrom
rlohne:feature/resizable-widgets-bar
Closed

feat: add resizable widgets bar with persisted width#2888
rlohne wants to merge 1 commit intowavetermdev:mainfrom
rlohne:feature/resizable-widgets-bar

Conversation

@rlohne
Copy link

@rlohne rlohne commented Feb 17, 2026

This pull request introduces a major improvement to the workspace layout by making the width of the widgets panel resizable and persistent per tab. The changes involve both frontend and backend updates to support saving, restoring, and clamping the widgets panel width, as well as updating the UI to use a horizontal split between the main content and the widgets panel.

Workspace Layout and Widgets Panel Resizing:

  • Added a new resizable horizontal split between the main content (TabContent) and the widgets panel (Widgets) using a nested PanelGroup in workspace.tsx, allowing users to adjust the widgets panel width interactively. [1] [2]
  • Implemented logic in WorkspaceLayoutModel to store, clamp, and persist the widgets panel width per tab, including new constants for default, min, and max widths, and methods for getting and setting the width. [1] [2] [3] [4] [5] [6] [7] [8] [9]
  • Updated the Widgets component to use full width instead of a fixed width, so it responds to the resizing logic. [1] [2]

Persistence and Backend Support:

  • Added a new meta key, widgets:width, to the backend (metaconsts.go) and updated the tab meta type (wtypemeta.go) to support saving and restoring the widgets panel width for each tab. [1] [2]Wrap TabContent + Widgets in a nested react-resizable-panels PanelGroup so users can drag-resize the bar from 48px up to 300px. Width is persisted per-tab via the new "widgets:width" metadata key, matching the existing AI panel pattern.

Wrap TabContent + Widgets in a nested react-resizable-panels PanelGroup
so users can drag-resize the bar from 48px up to 300px. Width is
persisted per-tab via the new "widgets:width" metadata key, matching
the existing AI panel pattern.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 17, 2026

Caution

Review failed

The pull request is closed.

Walkthrough

The changes implement a widget width feature for workspace layout management. Updates include: adding widget width constants and persistence logic to the workspace layout model, introducing a new InnerContent component to manage widget layout, modifying widget container widths from fixed to full width, and extending metadata types in both frontend and backend to support storing widget width values (types, constants, and struct field).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rlohne rlohne closed this Feb 17, 2026
@rlohne rlohne deleted the feature/resizable-widgets-bar branch February 17, 2026 17:38
@rlohne rlohne restored the feature/resizable-widgets-bar branch February 17, 2026 17:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants