spacedriveapp / spacedriveapp/spacebot

[Feature] Collapsible sidebar with persistent state

Open
#586 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
2.4k
Forks
367
PR merge metrics
No merged PRs in 30d

Description

Summary

The dashboard sidebar is a fixed 220px wide and cannot be collapsed. On smaller displays, or when focused on a single channel/workbench task, that's meaningful horizontal space that can't be reclaimed. Most peer dashboards (VS Code, Linear, Discord) allow this and persist the state.

Current state

  • interface/src/components/Sidebar.tsx:276<aside className="flex w-[220px] shrink-0 flex-col bg-sidebar"> (hardcoded width)
  • No collapse state, no toggle, no localStorage interaction in Sidebar.tsx
  • The per-agent expand/collapse that exists (line 247) is unrelated — it controls the agent sub-nav accordion, not the sidebar itself

Proposed change

  • Toggle button in the sidebar header + keyboard shortcut (⌘\ / Ctrl+\ matches VS Code convention)
  • Two states: expanded (current 220px) and collapsed (icon-only rail, ~48px)
  • Persist via localStorage["spacebot-sidebar-collapsed"]
  • Smooth width transition; main content reflows
  • On viewport <640px, auto-collapse and overlay-on-open instead of pushing content

Open questions

  • Should collapse hide the agent accordion entirely, or show just the agent avatars in the rail (clickable to overlay-expand)?
  • Same shortcut key on macOS vs Windows/Linux, or platform-specific?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in interface/src/components/Sidebar.tsx, especially the sidebar element at line 276 and the existing agent accordion around line 247. Review how the dashboard layout handles width and smaller viewports before deciding the collapse, shortcut, persistence, and overlay behavior. Done means expanded and icon-only states, localStorage persistence, keyboard control, responsive behavior, and smooth content reflow, with the open questions resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.