Skip to content

feat(web): add temporary side chats with context snapshots - #12794

Closed
rohan-patnaik wants to merge 1 commit into
pingdotgg:mainfrom
rohan-patnaik:feat/sidechat-panel
Closed

rohan-patnaik wants to merge 1 commit into
pingdotgg:mainfrom
rohan-patnaik:feat/sidechat-panel

Conversation

@rohan-patnaik

Copy link
Copy Markdown

A side question should not interrupt a running task or add an entire exploratory exchange to its context. This adds temporary SideChat tabs beside the main thread, opened from the panel launcher, /side, or Ctrl+Alt+S.

Each tab captures a fixed conversation snapshot, including partial streamed output, and uses an independent provider session. Tabs have separate models, reasoning/access controls, drafts, and attachments. Send to main chat explicitly dispatches a completed answer using the parent’s settings; Keep promotes the tab to a normal thread and Close discards it. The pane resizes and preserves inactive tabs.

Refs #12793.

Draft for workflow review: #2829 has fork/merge-back support, but the checked v2 branch has no equivalent temporary tabbed panel for an in-progress snapshot. #9436/#9437 were deferred because the orchestration/provider layers are being rewritten. This implementation targets current main to make the interaction runnable; its snapshot/session plumbing should be reconciled with v2 before merging. It does not imply v2 lacks forks or merge-back.

Before After
Current panel launcher Side question and separate model
Second independent tab and explicit send-back

Second tab with Send to main chat

Validation: 276 focused tests passed across server, web, and client-runtime. Web, server, and client-runtime typechecks passed; scoped lint completed with warnings. Tests cover streaming snapshot isolation and restart, attachment ownership, all six provider adapters through test doubles, oversized context, temporary navigation, tab/draft independence, Keep, and send-back success/failure with the parent’s model. Cua Driver exercised tab creation/closing, independent model display, draft retention, and the isolated screenshots. Screenshots use synthetic fixtures; no live provider calls were used as proof.

The web UI is shared by desktop; shared navigation hides temporary threads on all clients. Native mobile has no SideChat panel in this PR and was not exercised. Requests stay environment-scoped for remote connections. Snapshots are persisted for reload recovery and contain visible history, not hidden reasoning or live tool state. Side sessions share the workspace; they are not filesystem sandboxes. Hidden side chats retain worktree ownership and become visible if their parent disappears.

Implemented with GPT-6 Astra (medium), Codex harness in T3 Code.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Sep 20, 2026
@juliusmarminge

Copy link
Copy Markdown
Member

Closing as superseded: the related feature request #12793 was closed as a duplicate of discussion #7311. Please continue on that discussion (and related #8343 / #11818); earlier SideChat drafts were deferred during the rewrite (#9436/#9437).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants