Repository navigation
feat(solo): drag to reorder workspaces - #3221
Draft
aaronstressfree wants to merge 4 commits into
Draft
aaronstressfree wants to merge 4 commits into
aaronstressfree wants to merge 4 commits into
Conversation
Solo workspaces can now be reordered by dragging their heading, or with Move up and Move down in the workspace actions menu. The order saves to the existing Solo groups record, so it syncs across devices. Chats stays last. The Team sidebar's section drag moves into a shared useSidebarGroup hook so both sidebars use the same drop line, drag preview and click guard. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Claude <c131993609cf92f6f206ebddbd7bda1771bf78a493c47642a315439626ffd2af@buzz>
A real pointer drag shows the drop line, saves the new Solo groups order, leaves the dragged workspace expanded, and survives a reload. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Claude <c131993609cf92f6f206ebddbd7bda1771bf78a493c47642a315439626ffd2af@buzz>
A failed workspace move now shows a notice with Retry and Dismiss, and focus stays on the workspace. Back-to-back moves wait for the next second instead of failing, since a replaceable record refuses a second save in the same second. Move up and Move down hide when order cannot be saved, matching Team sections. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Claude <c131993609cf92f6f206ebddbd7bda1771bf78a493c47642a315439626ffd2af@buzz>
A chat move or workspace delete right after a reorder hit the same same-second save refusal, so the wait now runs before every fresh write read instead of only before reorders. A disabled Retry move says why. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Claude <c131993609cf92f6f206ebddbd7bda1771bf78a493c47642a315439626ffd2af@buzz>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In one line: you can now drag your Solo workspaces into the order you want, and the order follows you to your other devices.
Solo workspaces can now be reordered. Drag a workspace heading up or down in the sidebar, or use Move up and Move down in its actions menu. The order saves to your existing Solo groups record, so it syncs to your other devices. Chats stays last.
Before this, Solo workspaces kept their creation order with no way to change it. The Solo sidebar already used the Team sidebar's drag wrapper for moving chats, but workspace reordering was stubbed out (
onReorder={() => {}}). The shared preferences store already supported optimistic section reordering; Solo just never supplied a writer for it.What changed
DroppableSidebarSectionintouseSidebarGroup. Team sections render exactly as before; Solo workspaces now use the same hook.createSoloPreferencesgainswriteOrder. It re-reads the Solo groups record and sorts its workspaces by the requested order. Workspaces added on another device in the meantime keep their order after the ones the request places.docs/buzz-help.mddescribes reordering under Workspaces.Screenshots
Headless WebKit, from the browser test fixture.
Before the drag: Work, then Home.
Dragging Home above Work: the drag preview shows "Home", the shared drop line sits above Work, and the dragged section dims.
After the drop: Home, then Work. The order is saved and survives a reload.
Workspace menu: Move up and Move down; Move down is disabled on the last workspace.
Testing
pnpm typecheckpasses. Biome is clean on the changed files.src/bundled/channels,src/features/channel-navigation,src/features/relayandsrc/features/solo: 239 files, 5,139 tests pass. New cases:solo-chats.spec.mjs(new test: a real pointer drag shows the drop line, saves, keeps the workspace expanded, survives a reload, and a drop on Chats does nothing), plussolo-workspace.spec.mjsand the sidebar contribution, section creation, removal, headings and collapsed-unread specs. All pass. Chromium was not run locally: a local tool on this machine kills headless Chromium, so CI's Chromium shards are the check there.just desktop) and touch devices.Review FAQ
created_atis in seconds, and the kit refuses an equal-second replacement on purpose. A second move is a normal user action, so the store waits up to one second instead of showing an error. The wait is abortable through the same signals as the rest of the write.Pre-merge checklist
🤖 Generated with Claude Code