feat(threads): add virtual MCP association to threads#2286
feat(threads): add virtual MCP association to threads#2286danielfurt wants to merge 1 commit intomainfrom
Conversation
- Add virtual_mcp_id column to threads table with migration - Update thread creation and listing to support virtual MCP filtering - Add virtual MCP selector in chat UI - Update thread storage and API to handle virtual_mcp_id - Add indexes for efficient filtering by virtual_mcp_id - Update chat store to manage virtual MCP selection - Refactor home page to support virtual MCP filtering
🧪 BenchmarkShould we run the Virtual MCP strategy benchmark for this PR? React with 👍 to run the benchmark.
Benchmark will run on the next push after you react. |
Release OptionsShould a new version be published when this PR is merged? React with an emoji to vote on the release type:
Current version: Deployment
|
There was a problem hiding this comment.
1 issue found across 22 files
Prompt for AI agents (all issues)
Check if these issues are valid — if so, understand the root cause of each and fix them.
<file name="apps/mesh/src/web/components/chat/ice-breakers.tsx">
<violation number="1" location="apps/mesh/src/web/components/chat/ice-breakers.tsx:351">
P2: Removing the key from ErrorBoundary means it won’t reset after a connection change, so a previous error can permanently blank the ice breakers until full page reload. Keep the key on ErrorBoundary so it remounts when connectionId changes.</violation>
</file>
Since this is your first cubic review, here's how it works:
- cubic automatically reviews your code and comments on bugs and improvements
- Teach cubic by replying to its comments. cubic learns from your replies and gets better over time
- Ask questions if you need clarification on any suggestion
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
| > | ||
| <ErrorBoundary key={errorBoundaryKey} fallback={null}> | ||
| <Suspense fallback={<IceBreakersFallback />}> | ||
| <ErrorBoundary fallback={null}> |
There was a problem hiding this comment.
P2: Removing the key from ErrorBoundary means it won’t reset after a connection change, so a previous error can permanently blank the ice breakers until full page reload. Keep the key on ErrorBoundary so it remounts when connectionId changes.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/mesh/src/web/components/chat/ice-breakers.tsx, line 351:
<comment>Removing the key from ErrorBoundary means it won’t reset after a connection change, so a previous error can permanently blank the ice breakers until full page reload. Keep the key on ErrorBoundary so it remounts when connectionId changes.</comment>
<file context>
@@ -350,8 +348,11 @@ export function IceBreakers({ className }: IceBreakersProps) {
>
- <ErrorBoundary key={errorBoundaryKey} fallback={null}>
- <Suspense fallback={<IceBreakersFallback />}>
+ <ErrorBoundary fallback={null}>
+ <Suspense
+ key={connectionId ?? "default"}
</file context>
| <ErrorBoundary fallback={null}> | |
| <ErrorBoundary key={connectionId ?? "default"} fallback={null}> |
What is this contribution about?
Screenshots/Demonstration
Review Checklist
Summary by cubic
Associate each thread with the selected virtual MCP (agent) using virtual_mcp_id to show the correct agent and enable filtering by agent across the app.
New Features
Migration
Written for commit 39b4a18. Summary will update on new commits.