From eaf8f2a850632158b9e38132c6ba4901b154a07e Mon Sep 17 00:00:00 2001 From: "b.b" <76818625+breaking-brake@users.noreply.github.com> Date: Sat, 4 Apr 2026 15:03:11 +0900 Subject: [PATCH 1/3] improvement: preserve undo history after MCP tool execution (#708) - Added clearHistory option to setActiveWorkflow (default: true) - Pass clearHistory: false in MCP apply and Slack import paths - Workflow file open still clears history as before Closes #707 Co-authored-by: Claude Opus 4.6 (1M context) --- src/webview/src/App.tsx | 6 +++--- src/webview/src/stores/workflow-store.ts | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/webview/src/App.tsx b/src/webview/src/App.tsx index bc27f0fb..7f022539 100644 --- a/src/webview/src/App.tsx +++ b/src/webview/src/App.tsx @@ -252,7 +252,7 @@ const App: React.FC = () => { const { nodes: loadedNodes, edges: loadedEdges } = deserializeWorkflow(pending.workflow); setCanvas(loadedNodes, loadedEdges); setWorkflowName(pending.workflow.name); - setActiveWorkflow(pending.workflow); + setActiveWorkflow(pending.workflow, { clearHistory: false }); vscode.postMessage({ type: 'APPLY_WORKFLOW_FROM_MCP_RESPONSE', payload: { correlationId: pending.correlationId, success: true }, @@ -365,7 +365,7 @@ const App: React.FC = () => { setCanvas(loadedNodes, loadedEdges); setWorkflowName(workflow.name); // Set as active workflow to preserve conversation history - setActiveWorkflow(workflow); + setActiveWorkflow(workflow, { clearHistory: false }); // TODO: Select imported workflow in dropdown after fixing selection logic } @@ -506,7 +506,7 @@ const App: React.FC = () => { ); setCanvas(loadedNodes, loadedEdges); setWorkflowName(payload.workflow.name); - setActiveWorkflow(payload.workflow); + setActiveWorkflow(payload.workflow, { clearHistory: false }); vscode.postMessage({ type: 'APPLY_WORKFLOW_FROM_MCP_RESPONSE', payload: { diff --git a/src/webview/src/stores/workflow-store.ts b/src/webview/src/stores/workflow-store.ts index cfc41952..3aca2842 100644 --- a/src/webview/src/stores/workflow-store.ts +++ b/src/webview/src/stores/workflow-store.ts @@ -142,7 +142,7 @@ interface WorkflowStore { clearWorkflow: () => void; addGeneratedWorkflow: (workflow: Workflow) => void; updateWorkflow: (workflow: Workflow) => void; - setActiveWorkflow: (workflow: Workflow) => void; // Phase 3.12 + setActiveWorkflow: (workflow: Workflow, options?: { clearHistory?: boolean }) => void; // Phase 3.12 updateActiveWorkflowMetadata: (updates: Partial) => void; // Update activeWorkflow without changing canvas ensureActiveWorkflow: () => void; // Ensure activeWorkflow exists (create from canvas if null) @@ -892,7 +892,7 @@ export const useWorkflowStore = create()( }, // Phase 3.12: Set active workflow and update canvas - setActiveWorkflow: (workflow: Workflow) => { + setActiveWorkflow: (workflow: Workflow, options?: { clearHistory?: boolean }) => { // Convert workflow nodes to ReactFlow nodes const newNodes: Node[] = sortNodesParentFirst( workflow.nodes.map((node) => ({ @@ -927,7 +927,10 @@ export const useWorkflowStore = create()( subAgentFlows: workflow.subAgentFlows || [], }); // Clear undo/redo history to prevent cross-workflow undo - useWorkflowStore.temporal.getState().clear(); + // Skip clearing when explicitly requested (e.g., MCP apply on same workflow) + if (options?.clearHistory !== false) { + useWorkflowStore.temporal.getState().clear(); + } }, updateActiveWorkflowMetadata: (updates: Partial) => { From c659e6d1d3076bc5654e4bbe0f4d7c886821d838 Mon Sep 17 00:00:00 2001 From: "b.b" <76818625+breaking-brake@users.noreply.github.com> Date: Sat, 4 Apr 2026 16:19:09 +0900 Subject: [PATCH 2/3] improvement: add parallel execution instructions for built-in sub-agents (#709) - Inject parallel execution guidance into exported slash commands for built-in sub-agent nodes - Orchestrator can dynamically spawn 1~N agents based on task complexity Co-authored-by: Claude Opus 4.6 (1M context) --- .../services/workflow-prompt-generator.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/extension/services/workflow-prompt-generator.ts b/src/extension/services/workflow-prompt-generator.ts index b2878a70..34276cfe 100644 --- a/src/extension/services/workflow-prompt-generator.ts +++ b/src/extension/services/workflow-prompt-generator.ts @@ -698,6 +698,23 @@ export function generateExecutionInstructions( sections.push(node.data.prompt || ''); sections.push('```'); sections.push(''); + if (node.data.builtInType) { + sections.push('**Parallel Execution**: enabled'); + sections.push(''); + sections.push( + 'When executing this node, assess whether the task involves multiple independent areas or concerns.' + ); + sections.push( + 'If so, launch multiple agents of the same subagent_type in parallel — one per independent area.' + ); + sections.push(''); + sections.push('Guidelines:'); + sections.push('- Single area of concern → execute with 1 agent'); + sections.push('- Multiple independent areas → spawn 1 agent per area, execute in parallel'); + sections.push('- Wait for all agents to complete before proceeding to the next node'); + sections.push('- Consolidate all agent results before passing to the next node'); + sections.push(''); + } } } From 4647daa6d0a5b58cb32c564674b11f3067f39716 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 4 Apr 2026 07:27:26 +0000 Subject: [PATCH 3/3] chore(release): 3.32.2 [skip ci] ## [3.32.2](https://github.com/breaking-brake/cc-wf-studio/compare/v3.32.1...v3.32.2) (2026-04-04) ### Improvements * add parallel execution instructions for built-in sub-agents ([#709](https://github.com/breaking-brake/cc-wf-studio/issues/709)) ([c659e6d](https://github.com/breaking-brake/cc-wf-studio/commit/c659e6d1d3076bc5654e4bbe0f4d7c886821d838)) * preserve undo history after MCP tool execution ([#708](https://github.com/breaking-brake/cc-wf-studio/issues/708)) ([eaf8f2a](https://github.com/breaking-brake/cc-wf-studio/commit/eaf8f2a850632158b9e38132c6ba4901b154a07e)), closes [#707](https://github.com/breaking-brake/cc-wf-studio/issues/707) --- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- src/webview/package-lock.json | 4 ++-- src/webview/package.json | 2 +- 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83cad183..0e667daa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [3.32.2](https://github.com/breaking-brake/cc-wf-studio/compare/v3.32.1...v3.32.2) (2026-04-04) + +### Improvements + +* add parallel execution instructions for built-in sub-agents ([#709](https://github.com/breaking-brake/cc-wf-studio/issues/709)) ([c659e6d](https://github.com/breaking-brake/cc-wf-studio/commit/c659e6d1d3076bc5654e4bbe0f4d7c886821d838)) +* preserve undo history after MCP tool execution ([#708](https://github.com/breaking-brake/cc-wf-studio/issues/708)) ([eaf8f2a](https://github.com/breaking-brake/cc-wf-studio/commit/eaf8f2a850632158b9e38132c6ba4901b154a07e)), closes [#707](https://github.com/breaking-brake/cc-wf-studio/issues/707) + ## [3.32.1](https://github.com/breaking-brake/cc-wf-studio/compare/v3.32.0...v3.32.1) (2026-04-03) ### Bug Fixes diff --git a/package-lock.json b/package-lock.json index 28423a20..4c15a50a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cc-wf-studio", - "version": "3.32.1", + "version": "3.32.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cc-wf-studio", - "version": "3.32.1", + "version": "3.32.2", "license": "AGPL-3.0-or-later", "dependencies": { "@modelcontextprotocol/sdk": "^1.26.0", diff --git a/package.json b/package.json index f6112344..5628372a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "cc-wf-studio", "displayName": "Claude Code Workflow Studio", "description": "Visual Workflow Editor for Claude Code, GitHub Copilot, and more AI agents", - "version": "3.32.1", + "version": "3.32.2", "publisher": "breaking-brake", "icon": "resources/icon.png", "repository": { diff --git a/src/webview/package-lock.json b/src/webview/package-lock.json index 8309a5ec..376a1e40 100644 --- a/src/webview/package-lock.json +++ b/src/webview/package-lock.json @@ -1,12 +1,12 @@ { "name": "cc-wf-studio-webview", - "version": "3.32.1", + "version": "3.32.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cc-wf-studio-webview", - "version": "3.32.1", + "version": "3.32.2", "license": "AGPL-3.0-or-later", "dependencies": { "@radix-ui/react-collapsible": "^1.1.12", diff --git a/src/webview/package.json b/src/webview/package.json index dfb60e15..3b50fcb5 100644 --- a/src/webview/package.json +++ b/src/webview/package.json @@ -1,6 +1,6 @@ { "name": "cc-wf-studio-webview", - "version": "3.32.1", + "version": "3.32.2", "private": true, "license": "AGPL-3.0-or-later", "type": "module",