Skip to content

feat: multi-chat sessions#213

Open
sandy081 wants to merge 4 commits into
mainfrom
sandy081/multi-chat-reapply
Open

feat: multi-chat sessions#213
sandy081 wants to merge 4 commits into
mainfrom
sandy081/multi-chat-reapply

Conversation

@sandy081

Copy link
Copy Markdown
Member

Re-applies the multi-chat work from #197, which was accidentally merged and then reverted in #212. This restores the exact tree of the original PR head (b55919a); diff vs that commit is empty.

Summary

  • Adds multi-chat session support to the protocol (types/) and all clients (Rust/Kotlin/Swift/TypeScript/Go).
  • New actions: createChat / disposeChat; session actions SessionChatAdded/SessionChatRemoved/SessionChatUpdated/DefaultChatChanged.
  • SessionState.chats: ChatSummary[] + defaultChat?; breaking removal of SessionState.turns/activeTurn.
  • Includes the Kotlin compile fix from b55919a.

Why a new PR

#197 cannot be reopened (its branch was merged then reverted). This PR re-applies the work via revert-of-revert.

Gate

Per @connor4312, hold merge until the VS Code adoption PR is ready.

@sandy081 sandy081 requested a review from connor4312 June 10, 2026 12:08
@sandy081 sandy081 self-assigned this Jun 10, 2026
sandy081 and others added 2 commits June 10, 2026 16:00
Adds a feature-level walkthrough of multi-chat sessions for reviewers
and UX exploration. Lives under docs/proposals (not wired into public
nav).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds `interactivity?: "full" | "read-only" | "hidden"` to
`ChatSummary` and `ChatState` to support agent-team patterns where
worker chats are read-only (visible for observability) or hidden
(internal implementation detail).

- "full" — user can send messages and watch (default when absent)
- "read-only" — user can watch but not send messages
- "hidden" — internal worker not shown in UI

Harness sets this based on chat role; UI uses it for controls.
Example: Claude Code Agent Teams shows all chats with lead interactive,
workers read-only.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
*
* @category Chat State
*/
export type ChatInteractivity = 'full' | 'read-only' | 'hidden';

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should use a const enum for this to match our existing style

…eapply

# Conflicts:
#	clients/rust/crates/ahp/src/reducers.rs
#	clients/swift/AgentHostProtocol/Sources/AgentHostProtocol/Generated/State.generated.swift
#	clients/swift/CHANGELOG.md
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.

2 participants