Skip to content

feat: secondary sidebar (configurable right panel) #28

@andrewchumchal

Description

@andrewchumchal

Summary

Add a secondary sidebar on the right side of the app — a configurable panel region that hosts auxiliary views such as attached context, file references, or conversation outline. Mirrors VS Code's secondary side bar (View > Secondary Side Bar).

Motivation

The primary sidebar holds navigation (Chats, Personas, Marketplace). The main area holds the conversation + optional artifact pane. A right-side panel gives a dedicated surface for supplementary content that benefits from always being visible — attached files, project knowledge, a conversation outline — without cluttering either the sidebar or the chat thread.

Proposed behaviour

Layout position

  • Anchored to the far right of the window, next to the main area
  • Hidden by default; toggled via activity bar icon or ⌘⇧B
  • Resizable via drag handle on its left edge
  • Width and open/closed state persisted in uiStore

Hosted views (initial set)

View Content
Context Files and knowledge attached to the active conversation
Outline Headings / sections extracted from the active conversation
Related Similar past conversations (future: semantic search)

Activity bar integration

  • Activity bar gains a secondary icon group (bottom-right aligned, or separate strip) to switch secondary sidebar panels
  • Clicking the active icon collapses the secondary sidebar

uiStore changes

  • secondarySidebarOpen: boolean
  • secondarySidebarWidth: number (persisted to localStorage)
  • secondarySidebarPanel: 'context' | 'outline' | 'related'

Acceptance criteria

  • Secondary sidebar renders on the right side of the main area
  • Toggles with ⌘⇧B and activity bar icon
  • Resizable; width persisted across restarts
  • Context view shows files/knowledge attached to the active conversation
  • Panel selection persisted across restarts
  • Collapsing does not shift or break the main area layout

Prerequisites

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions