Skip to content

[ENHANCEMENT] Add concurrent conversation sidebar and task switching - #128

Closed
allquixotic wants to merge 1 commit into
Zoo-Code-Org:mainfrom
allquixotic:zoo-port/concurrent-conversations
Closed

[ENHANCEMENT] Add concurrent conversation sidebar and task switching#128
allquixotic wants to merge 1 commit into
Zoo-Code-Org:mainfrom
allquixotic:zoo-port/concurrent-conversations

Conversation

@allquixotic

Copy link
Copy Markdown

Related GitHub Issue

Closes: #126

Description

This PR adds concurrent conversation support in the webview and provider layer.

Key changes:

  • Adds an active conversation list in the chat UI.
  • Tracks active task/conversation metadata so users can switch between live or recent conversations.
  • Updates provider/webview message routing so actions apply to the selected conversation instead of implicitly targeting whatever task was most recently current.
  • Adjusts task cancellation and state-posting behavior to avoid UI flicker and preserve task identity.
  • Adds tests around conversation switching, provider behavior, and cancel/flicker regressions.

Reviewer focus:

  • Whether all user actions route to the selected conversation.
  • Whether switching conversations preserves visible state without leaking messages between tasks.
  • Whether cancellation/resume behavior remains stable.

This PR was prepared with agentic AI assistance, then reviewed by a human. The underlying feature has been tested in production business use for several weeks in the contributor's fork.

This is opened as a draft until the linked issue is approved/assigned per Zoo Code's contribution process.

Test Procedure

From the Zoo Code worktree:

pnpm lint
pnpm check-types
pnpm --filter zoo-code test -- core/webview/__tests__/ClineProvider.spec.ts core/webview/__tests__/ClineProvider.flicker-free-cancel.spec.ts
pnpm --filter @roo-code/vscode-webview test -- src/components/chat/__tests__/ChatView.spec.tsx

Manual verification recommended:

  • Start one Zoo task.
  • Start or switch to a second conversation.
  • Confirm both appear in the active conversation list.
  • Switch back and forth and confirm each conversation keeps its own messages and status.
  • Cancel one task and confirm the other conversation remains usable.

Pre-Submission Checklist

  • Issue Linked: This PR is linked to an approved GitHub Issue (see "Related GitHub Issue" above).
  • Scope: My changes are focused on the linked issue (one major feature/fix per PR).
  • Self-Review: I have performed a thorough self-review of my code.
  • Testing: New and/or updated tests have been added to cover my changes (if applicable).
  • Documentation Impact: I have considered if my changes require documentation updates (see "Documentation Updates" section below).
  • Contribution Guidelines: I have read and agree to the Contributor Guidelines.

Screenshots / Videos

TODO: Attach before/after screenshots or a short video showing the active conversation list and switching between two conversations.

Documentation Updates

  • Yes, documentation updates are required. If Zoo Code has user docs for chat/task workflows, add a short section explaining active conversations and switching behavior.

Additional Notes

No duplicate issue found in Zoo's tracker.

Get in Touch

Discord: coorbin

@coderabbitai

coderabbitai Bot commented May 15, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 6f7ddaf3-6914-4c75-8e7f-6803e3cc821d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown
Contributor

This PR has had no activity for 60 days and will be automatically closed in 7 days unless there is new activity. If you'd like to continue, please rebase and leave a comment.

@github-actions github-actions Bot added the stale-inactive PR closed due to 60+ days of inactivity label Jul 15, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Closing due to 60+ days of inactivity. Feel free to reopen if you'd like to resume this work.

@github-actions github-actions Bot closed this Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stale-inactive PR closed due to 60+ days of inactivity

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ENHANCEMENT] Add concurrent conversation sidebar and task switching

1 participant