Skip to content

feat(chat): multiple global conductors + resizable Ask Claude dock - #395

Merged
jrothrock merged 1 commit into
mainfrom
feat/multi-conductors-resizable-dock
Sep 3, 2026
Merged

feat(chat): multiple global conductors + resizable Ask Claude dock#395
jrothrock merged 1 commit into
mainfrom
feat/multi-conductors-resizable-dock

Conversation

@jrothrock

Copy link
Copy Markdown
Collaborator

Two improvements to the Ask Claude dock.

Multiple global conductors

Like the Work tab lists workers, the Global tab now lists independent global-Claude conductor sessions in a left rail with a + New — each is its own host-Claude conversation (own transcript + resume), all kept mounted so switching never drops one. The backend already ran each /chat/ws as an independent conversation, so this is client-side.

  • The first conductor keeps persistKey "global" (inherits the previous single global chat).
  • A single conductor shows just the chat with a slim "+ New conductor" header — no rail until you add a second.
  • New GlobalConductors component; FirstRunChat gains a persistKey prop.

Resizable dock

  • The whole dock width is drag-resizable via a left-edge handle, persisted (reuses useDragResize + usePersistentState).
  • The Work tab's (and conductors') jobs rail is drag-resizable too, so the cramped worker/conductor labels get room.

Verified

Playwright: dock drags 440→693px; adding a conductor shows the rail + resize handle; switching keeps exactly one active; closing returns to the solo layout. Screenshot-confirmed. Typecheck + build pass.

🤖 Generated with Claude Code

Two improvements to the "Ask Claude" dock:

- Multiple global conductors. Like the Work tab lists workers, the Global tab
  now lists independent global-Claude conductor sessions in a left rail with a
  "+ New" — each is its own host-Claude conversation (own transcript + resume),
  and all stay mounted so switching never drops one. The backend already ran
  each /chat/ws as an independent conversation, so this is client-side. The
  first conductor keeps persistKey "global" (inherits the old single chat); a
  single conductor shows just the chat with a slim "+ New conductor" header (no
  rail until you add a second). New GlobalConductors component; FirstRunChat
  gains a persistKey prop.
- Resizable dock. The whole dock width is drag-resizable via a left-edge handle
  and persisted (reuses useDragResize + usePersistentState). The Work tab's (and
  conductors') jobs rail is also drag-resizable, so cramped worker/conductor
  labels get room.

Verified with Playwright: dock drags 440→693px; adding a conductor shows the
rail + resize handle; switching keeps one active; closing returns to the solo
layout.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jrothrock
jrothrock merged commit 768385c into main Sep 3, 2026
1 check passed
@jrothrock
jrothrock deleted the feat/multi-conductors-resizable-dock branch September 3, 2026 21:47
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