Skip to content

[Feature Request] Add multi-session UI support for WebChat (session switching sidebar) #52266

@SheenChow

Description

@SheenChow

Summary

Currently, WebChat (the built-in Control UI) only supports a single active session at a time. Users cannot create, view, or switch between multiple isolated sessions (e.g., "Work", "Writing", "AI News") within the WebChat interface.

This limits productivity for users who want to:

  • Separate contexts (work vs. personal vs. testing)
  • Maintain independent conversation histories
  • Use the same agent with different memory spaces for different tasks

Problem to solve

Add a session switching sidebar to the WebChat UI (similar to Discord's channel list) that allows users to:

  1. View all active sessions – List sessions with display names/labels
  2. Create new sessions – Button to spawn a new isolated session with a custom label
  3. Switch between sessions – Click to change the active session context
  4. See session metadata – Last activity time, model used, token usage (optional)

Proposed solution

Register subagent_spawning hook in the WebChat channel plugin (currently missing)

  • Enable thread: true support for sessions_spawn in WebChat
  • Add frontend UI component for session list/switcher in /dist/control-ui/
  • Support session renaming/labeling (not just UUIDs)

Alternatives considered

No response

Impact

Impact

Affected Users/Systems

  • Primary users: Power users who manage multiple projects/contexts simultaneously
  • Affected channel: WebChat (built-in Control UI)
  • Affected systems: sessions_spawn tool, session management UI

Severity

🟠 Blocks workflow - Users cannot achieve true context isolation without switching to a different channel (e.g., Discord). This defeats the purpose of using WebChat as a self-contained solution.

Frequency

Always - Every time a user attempts to:

  • Create a new isolated session via sessions_spawn with thread: true
  • View or switch between multiple sessions in the WebChat UI
  • Use WebChat for multi-project workflows

Practical Consequences

  1. Extra manual work: Users must prefix messages with tags like [Work] or [AI News] to simulate separation (no true memory isolation)
  2. Forced platform migration: Users who want multi-session must set up Discord or another channel, adding configuration overhead
  3. Memory pollution: All conversations mix into a single session, reducing response quality and increasing token usage
  4. Productivity loss: Cannot maintain parallel contexts (e.g., testing features while doing daily work) without manual context-switching overhead
  5. Inconsistent experience: Discord users get full multi-session support; WebChat users get single-session only

Current Workaround (Suboptimal)

  • Use sessions_spawn without thread: true → sessions created but not visible/switchable in UI
  • Manually track session keys and use sessions_send → requires command-line knowledge
  • Switch to Discord → requires external platform setup

Expected Behavior After Fix

  • WebChat users can create, view, and switch sessions as easily as Discord users
  • True memory isolation between projects/contexts
  • No need for external platforms for multi-session workflows

Evidence/examples

No response

Additional information

  • Current behavior: sessions_spawn with thread: true returns error: "thread=true is unavailable because no channel plugin registered subagent_spawning hooks."
  • Discord implementation: Already supports this via channels.discord.threadBindings.* config – WebChat could follow a similar pattern.
  • Use case: Power users managing multiple projects/tasks want persistent, isolated sessions without leaving the WebChat interface.

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