Skip to content

feat(desktop): add new sidebar for desktop#15489

Open
akarabach wants to merge 1 commit intoanomalyco:devfrom
akarabach:list-mode
Open

feat(desktop): add new sidebar for desktop#15489
akarabach wants to merge 1 commit intoanomalyco:devfrom
akarabach:list-mode

Conversation

@akarabach
Copy link

Issue for this PR

Closes #

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

Adds an alternative sidebar layout ("List" mode) that replaces the two-column
icon strip + panel design with a flat, collapsible project list. Users can switch
between "Classic" and "List" in Settings > General > Sidebar style.

List mode sidebar features:

  • Projects shown as collapsible groups with chevron toggle (animated rotation)
  • Sessions listed under each project with status indicators, diff stats (+N/-N),
    and relative timestamps (timestamps hidden when diff stats are present)
  • Per-project "new session" button revealed on hover
  • Per-project "open/add project" button in the header
  • Two-step archive: hover reveals archive icon → click changes to "Cancel" →
    click Cancel confirms the archive → mouse-leave resets without archiving
  • Sidebar is fully collapsible/toggleable via Cmd+B (no forced-open behavior)
  • Resize handle with collapse threshold

Shared components extracted:

  • SessionStatusIndicator — self-contained component that computes session
    status (busy/spinner, permission request, error, unseen messages) and renders
    the appropriate indicator. Used by both classic and list sidebars, removing
    duplicated status logic from sidebar-items.tsx.

Settings integration:

  • New sidebarStyle setting ("classic" | "list") persisted in general settings
  • Dropdown in Settings > General to switch between layouts

How did you verify your code works?

  • Tested both sidebar modes in the Tauri desktop app
  • Verified toggle (Cmd+B) works in both modes
  • Verified archive two-step flow, collapsible groups, status indicators,
    diff stats display, and new session/project actions
  • Production build passes (vite build) with no type errors

Screenshots / recordings

Screenshot 2026-02-28 at 21 44 09 Screenshot 2026-02-28 at 21 43 57

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

@github-actions github-actions bot added needs:compliance This means the issue will auto-close after 2 hours. needs:title labels Feb 28, 2026
@github-actions
Copy link
Contributor

Hey! Your PR title Add New Sidebar List Mode doesn't follow conventional commit format.

Please update it to start with one of:

  • feat: or feat(scope): new feature
  • fix: or fix(scope): bug fix
  • docs: or docs(scope): documentation changes
  • chore: or chore(scope): maintenance tasks
  • refactor: or refactor(scope): code refactoring
  • test: or test(scope): adding or updating tests

Where scope is the package name (e.g., app, desktop, opencode).

See CONTRIBUTING.md for details.

@akarabach akarabach changed the title Add New Sidebar List Mode feat(opencode): add new sidebar for desktop Feb 28, 2026
@github-actions github-actions bot removed needs:compliance This means the issue will auto-close after 2 hours. needs:title labels Feb 28, 2026
@github-actions
Copy link
Contributor

Thanks for updating your PR! It now meets our contributing guidelines. 👍

@akarabach akarabach changed the title feat(opencode): add new sidebar for desktop feat(desktop): add new sidebar for desktop Feb 28, 2026
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.

1 participant