Conversation
🤖 AI PR Validation ReportPR Review ResultsThank you for your submission! Here's detailed feedback on your PR title and body compliance:✅ PR Title
|
| Section | Status | Recommendation |
|---|---|---|
| Title | ✅ | Title is good; optional shorter variant suggested |
| Commit Type | ✅ | feature selected correctly |
| Risk Level | Change to High and add risk:high label (see reasoning) |
|
| What & Why | ✅ | Add quick callout about env vars and sensitive save behavior |
| Impact of Change | ✅ | Expand to explicitly call out compatibility, ops, and security considerations |
| Test Plan | ✅ | Unit tests present. Add E2E/integration tests or rationale and a mitigation checklist |
| Contributors | Add other contributors if applicable (PM/Design/QA/Security) | |
| Screenshots/Videos | ✅ | Consider adding a short GIF showing workflow edit/apply/undo |
Final recommendations (actionable):
- Update Risk Level to High in the PR template (select High) and add the repository label
risk:high. This PR touches many core runtime and persistence paths, so label it high-risk. - In the PR body Test Plan, either add E2E/integration tests (recommended) or include a short explanation why E2E cannot be added now and an explicit manual test checklist covering these critical flows:
- Applying an auto-apply workflow change and verifying it persisted to production artifacts
- Proposal-only flow (ensure proposal shows, approve, and reverts)
- Undo flow (applied change undone)
- Draft save for Consumption and Standard (ensure drafts stored in the new draft endpoints)
- Connector discovery: discover_connectors → get_connector_operations → action template insertion
- Security: verify API keys are read from env and not logged
- In "What & Why" and "Impact of Change", explicitly call out:
- New env vars: VITE_COPILOT_EDITOR_API_KEY, VITE_COPILOT_EDITOR_ENDPOINT, VITE_COPILOT_EDITOR_MODEL/DEPLOYMENT and the requirement to store them securely
- The deployArtifacts change: signature now accepts notesData and writes draft/notes files — mention backward compatibility and migration notes
- Any expected operational steps (e.g., configure OpenAI/Azure OpenAI, network allow-listing)
- Add a brief Security/Privacy notes section or at least one paragraph in the PR body describing how LLM keys are protected and any telemetry/PII considerations for sending workflow content to LLMs.
- Ensure tests include integration coverage for the LLM response parsing edge cases (the code & tests include many such cases — highlight those tests in the Test Plan so reviewers see them quickly).
- Add or link to runbook/rollback instructions because this feature auto-applies edits (very high-impact). At minimum, indicate how to rollback (e.g., revert DB/store artifacts or restore from draft/prod files). If the app has an internal undo that is user-visible, mention how it interacts with persisted state.
If you make the recommended updates (especially changing the risk label to high and clarifying E2E / security items), this PR's title/body should be in good shape for a functional & security review. Thank you — this is a substantial, well-documented feature; the main ask is to acknowledge the higher risk and provide E2E/ops/security follow-up details so reviewers and release managers can plan accordingly.
Reviewer note: I recommended a higher risk level (High) because the code diff modifies persistence, network calls to LLM/provider, and introduces auto-apply behavior that modifies persisted workflows. Please update the PR labels and body to reflect that.
Last updated: Mon, 09 Mar 2026 20:31:04 GMT
There was a problem hiding this comment.
Pull request overview
Adds an in-designer Copilot “workflow editing” capability, enabling natural-language prompts to propose/apply workflow definition changes (actions, parameters, connections, and notes) and presenting a structured change list with undo support in the chat UI.
Changes:
- Introduces
ICopilotWorkflowEditorService+ base implementation, plus SKU-specific system prompts and connector discovery tool-calling helpers. - Updates chatbot UI/components (largely Fluent UI v9 patterns) to render structured workflow change lists, node links, and undo actions; preserves chat history while the drawer is hidden.
- Adds workflow notes to the shared workflow model and wires notes/parameters handling through the Standalone designer draft/prod flows.
Reviewed changes
Copilot reviewed 52 out of 52 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| libs/logic-apps-shared/src/utils/src/lib/models/workflow.ts | Adds shared Note type and notes field on Workflow. |
| libs/logic-apps-shared/src/designer-client-services/lib/copilotWorkflowEditor.ts | Adds workflow editor service interface, change types, and service initializer singleton. |
| libs/logic-apps-shared/src/designer-client-services/lib/base/index.ts | Re-exports new workflow editor base service, prompts, and tools. |
| libs/logic-apps-shared/src/designer-client-services/lib/base/copilotWorkflowEditorTools.ts | Implements connector discovery tools + swagger-to-action template generation. |
| libs/logic-apps-shared/src/designer-client-services/lib/base/copilotWorkflowEditorPrompt.ts | Adds SKU-aware system prompts and response format contract. |
| libs/logic-apps-shared/src/designer-client-services/lib/base/copilotWorkflowEditor.ts | Implements OpenAI Chat Completions / Responses integration, tool-calling loop, and response parsing. |
| libs/logic-apps-shared/src/designer-client-services/lib/base/test/copilotWorkflowEditorTools.spec.ts | Unit tests for tool definitions/execution and template building. |
| libs/logic-apps-shared/src/designer-client-services/lib/base/test/copilotWorkflowEditor.spec.ts | Unit tests for editor service parsing, history, and API interaction behavior. |
| libs/logic-apps-shared/src/designer-client-services/lib/test/copilotWorkflowEditor.spec.ts | Unit tests for service singleton init/guards and type shapes. |
| libs/logic-apps-shared/src/designer-client-services/index.ts | Exposes copilotWorkflowEditor from the package entrypoint. |
| libs/designer/src/lib/ui/panel/agentChat/agentChat.tsx | Updates agent chat input submission to accept value argument (no local text state). |
| libs/designer-v2/src/lib/ui/panel/runHistoryPanel/agentChatContent.tsx | Same agent chat input submission refactor for v2 run history panel. |
| libs/designer-v2/src/lib/ui/panel/agentChat/agentChat.tsx | Same agent chat input submission refactor for v2 agent chat panel. |
| libs/designer-v2/src/lib/core/index.ts | Exports notes initialization action. |
| libs/designer-v2/src/lib/common/models/workflow.ts | Switches Note type to shared export; re-exports Note. |
| libs/designer-ui/src/lib/styles.less | Layout tweak (min-width: 0) for flex overflow behavior. |
| libs/designer-ui/src/lib/editor/codemirror/types.ts | Adds noBorder prop to Monaco-compatible CodeMirror props. |
| libs/designer-ui/src/lib/editor/codemirror/CodeMirrorEditor.tsx | Implements noBorder styling behavior. |
| libs/designer-ui/src/lib/copilotGetStarted/components/createNaturalLanguageToFlowInput.tsx | Updates to new ChatInput ref/props and styling hookup. |
| libs/designer-ui/src/lib/chatbot/index.tsx | Exports additional chatbot component types. |
| libs/designer-ui/src/lib/chatbot/feedbackHelper.tsx | Migrates action types to ChatBubbleAction and Fluent v9 icon usage. |
| libs/designer-ui/src/lib/chatbot/components/thumbsReactionButton.tsx | Migrates thumbs buttons to Fluent v9 Button/Tooltip + icon set. |
| libs/designer-ui/src/lib/chatbot/components/progressCardWithStopButton.tsx | Migrates stop button UI to Fluent v9 Button with icon. |
| libs/designer-ui/src/lib/chatbot/components/conversationMessage.tsx | Memoizes conversation message component and sets displayName. |
| libs/designer-ui/src/lib/chatbot/components/conversationItem.ts | Extends conversation item types with workflow editing state, change list, and node click handler. |
| libs/designer-ui/src/lib/chatbot/components/connectionsSetupMessage.tsx | Migrates class merging and icon usage to Fluent v9 patterns. |
| libs/designer-ui/src/lib/chatbot/components/chatInputBox.tsx | Rebuilds ChatInput using Fluent v9 Textarea/Button; adds imperative handle ref. |
| libs/designer-ui/src/lib/chatbot/components/chatBubble.tsx | Migrates footer actions/copy button to Fluent v9 controls; introduces ChatBubbleAction type. |
| libs/designer-ui/src/lib/chatbot/components/assistantReplyWithFlow.tsx | Replaces flow diff preview with structured change list rendering + clickable node names and undo action wiring. |
| libs/designer-ui/src/lib/chatbot/components/assistantGreeting.tsx | Updates greeting copy + suggestions; adds workflow-editing-enabled variant. |
| libs/designer-ui/src/lib/chatbot/components/assistantError.tsx | Migrates footer actions typing to ChatBubbleAction. |
| libs/designer-ui/src/lib/chatbot/components/test/assistantReplyWithFlow.spec.tsx | Adds tests for change list rendering, clickability, and undo behavior. |
| libs/designer-ui/src/lib/chatbot/components/test/assistantGreeting.spec.tsx | Updates/extends greeting tests for editing-enabled content. |
| libs/designer-ui/src/lib/chatbot/components/test/snapshots/assistantGreeting.spec.tsx.snap | Snapshot updates for greeting copy changes. |
| libs/designer-ui/src/lib/chatbot/chatbot.less | CSS tweaks for new footer/actions layout. |
| libs/chatbot/src/lib/ui/styles.ts | Updates header/protected badge styles to new layout expectations. |
| libs/chatbot/src/lib/ui/panelheader.tsx | Refactors header to remove internal close button; adds “Protected” badge link. |
| libs/chatbot/src/lib/ui/test/panelheader.spec.tsx | Updates tests for new header rendering and removed close handling. |
| libs/chatbot/src/lib/ui/CopilotChatbot.tsx | Adds workflow editing mode (service-based), change enrichment, undo/apply logic, and open/close behavior. |
| libs/chatbot/src/lib/ui/ChatbotUi.tsx | Migrates from v8 Panel to v9 InlineDrawer; localizes input state; adds drawer close button. |
| apps/vs-code-react/src/app/designer/CodeViewEditor/index.tsx | Adjusts editor container sizing and enables noBorder. |
| apps/Standalone/src/designer/app/AzureLogicAppsDesigner/laDesignerV2.tsx | Wires workflow editing chatbot into Standard designer, plus draft/prod params/notes selection and node focusing. |
| apps/Standalone/src/designer/app/AzureLogicAppsDesigner/laDesignerConsumptionV2.tsx | Wires workflow editing chatbot into Consumption designer and initializes consumption prompt. |
| apps/Standalone/src/designer/app/AzureLogicAppsDesigner/laDesignerConsumption.tsx | Updates chatbot mounting behavior and flex layout (non-v2 consumption). |
| apps/Standalone/src/designer/app/AzureLogicAppsDesigner/laDesigner.tsx | Wires workflow editing chatbot into Standard (non-v2) designer and adds parameter state updates. |
| apps/Standalone/src/designer/app/AzureLogicAppsDesigner/Services/WorkflowAndArtifacts.tsx | Adds draft save for consumption and persists notes artifacts during deployment. |
| apps/Standalone/src/designer/app/AzureLogicAppsDesigner/Models/Workflow.ts | Adds notes artifacts constants and draft artifacts typing updates. |
| apps/Standalone/src/designer/app/AzureLogicAppsDesigner/DesignerCommandBarV2.tsx | Adds Assistant toolbar button and avoids callback URL refresh on auto-save. |
| apps/Standalone/src/designer/app/AzureLogicAppsDesigner/DesignerCommandBar.tsx | Repositions Assistant command bar item to editor items. |
| apps/Standalone/src/designer/app/AzureLogicAppsDesigner/CodeViewV2.tsx | Adjusts code view sizing and enables noBorder. |
| apps/Standalone/src/designer/app/AzureLogicAppsDesigner/CodeView.tsx | Adjusts code view sizing, enables noBorder, and sets displayName. |
| Localize/lang/strings.json | Adds new localized strings for workflow editing greeting/prompts and status messages. |
libs/logic-apps-shared/src/designer-client-services/lib/base/copilotWorkflowEditor.ts
Show resolved
Hide resolved
libs/logic-apps-shared/src/designer-client-services/lib/base/copilotWorkflowEditor.ts
Show resolved
Hide resolved
libs/logic-apps-shared/src/designer-client-services/lib/base/copilotWorkflowEditorTools.ts
Show resolved
Hide resolved
apps/Standalone/src/designer/app/AzureLogicAppsDesigner/Services/WorkflowAndArtifacts.tsx
Show resolved
Hide resolved
📊 Coverage CheckThe following changed files need attention:
Please add tests for the uncovered files before merging. |
Commit Type
Risk Level
What & Why
Adds in-designer Copilot workflow editing. Users can describe workflow changes in natural language through the existing Copilot chatbot, and the assistant modifies the workflow definition directly.
Currently, the Copilot chatbot can only answer questions about Logic Apps. This PR extends it to actually modify the workflow: adding, updating, and removing actions, triggers, connections, parameters, and notes, all from a chat prompt. The assistant can also discover real connectors via tool-calling and produce ready-to-use action definitions from Swagger.
Key capabilities:
discover_connectors,get_connector_operations) that builds complete action templates from SwaggerImpact of Change
ICopilotWorkflowEditorServiceinterface andBaseCopilotWorkflowEditorServicebase class following the existing service injection pattern. Supports both Chat Completions and Responses API, OpenAI and Azure OpenAI auth.CoPilotChatbotcomponent has new props:enableWorkflowEditing,onWorkflowProposed,autoApply,getNodeVisuals,onNodeClick.Workflowmodel gainsnotes?: Record<string, Note>.copilotWorkflowEditor.ts(service interface),copilotWorkflowEditorPrompt.ts(system prompts),copilotWorkflowEditorTools.ts(tool definitions + Swagger-to-action template builder). Several chatbot UI components migrated from Fluent UI v8 to v9 patterns.Test Plan
Manual testing performed:
Contributors
@rllyy97
Screenshots/Videos