Skip to content

Conversation

@Bhavd13
Copy link
Contributor

@Bhavd13 Bhavd13 commented Dec 19, 2025

Commit Type

  • feature - New functionality
  • fix - Bug fix
  • refactor - Code restructuring without behavior change
  • perf - Performance improvement
  • docs - Documentation update
  • test - Test-related changes
  • chore - Maintenance/tooling

Risk Level

  • Low - Minor changes, limited scope
  • Medium - Moderate changes, some user impact
  • High - Major changes, significant user/system impact

What & Why

Added the A2A Request trigger operation group to the Consumption search menu, enabling users to find and add A2A triggers when building agentic workflows.

Impact of Change

  • Users: A2A Request trigger now appears in the search menu for Consumption Logic Apps
  • Developers: Added A2A operation group in search.ts
  • System: No performance impact - additive change only

Test Plan

  • Unit tests added/updated
  • E2E tests added/updated
  • Manual testing completed
  • Tested in: Standalone designer (Consumption mode)

Contributors

@Bhavd13

Screenshots/Videos

Copilot AI review requested due to automatic review settings December 19, 2025 10:37
@github-actions
Copy link

🤖 AI PR Validation Report

PR Review Results

Thank you for your submission! Here's detailed feedback on your PR title and body compliance:

⚠️ PR Title

  • Current: (feat): Adding A2A In Search Menu
  • Issue: The title is understandable but doesn't follow the repo's conventional-commit-style or provide the most specific context (which component/area was changed). Parentheses around feat are unusual; the scope is missing (e.g., search or consumption).
  • Recommendation: Use a clearer conventional commit format and include scope. Examples:
    • feat(search): Add A2A Request to Consumption search menu
    • feat(consumption/search): Add A2A Request operation to search menu

Commit Type

  • Properly selected (feature).
  • Only one commit type is selected which is correct. No change needed here.

Risk Level

  • Assessment: The PR body selects "Low" risk, but there is no corresponding repository label (e.g., risk:low, risk:medium, risk:high) applied to the PR. Also, based on the code changes (new operation manifests, new operations, updates to search service and designer service files, and new tests), the actual risk appears higher than "Low".
  • Recommendation: Add a repository label that matches the assessed risk. I recommend risk:medium for this change because it introduces a new operation type and plumbing (manifests, search, designer services and constants) which touches UX and operation discovery logic — additive but impactful.
    • Update the PR body Risk Level selection to "Medium".
    • Add label to the GitHub PR: risk:medium.

What & Why

  • Current: Added the A2A Request trigger operation group to the Consumption search menu, enabling users to find and add A2A triggers when building agentic workflows.
  • Issue: None — this section is brief and clear.
  • Recommendation: Optionally include the PR/feature ticket number or link to design/PM context if available.

⚠️ Impact of Change

  • Issue: You provided a succinct Impact of Change section which is good, but given the changes span multiple files touching discovery, manifests and designer support, consider being slightly more specific about which modules were changed and any backward-compat considerations.
  • Recommendation: Flesh out a little more detail to help reviewers and release notes:
    • Users: A2A Request trigger appears in the Consumption search menu when building logic apps (no breaking user changes expected).
    • Developers: Adds new operation (invokenestedagent/invokenestedagent manifest), new SearchService method usage (getAgentWorkflows), updates to designer consumption services to enable client-supported operation invokenestedagent.
    • System: Add note that changes are additive and should not affect existing operations; mention any caches or manifest registries that may need warm-up or rollouts.

Test Plan

  • Assessment: The PR body marks only "Manual testing completed". However, the code diff includes multiple newly added unit test files (e.g., libs/.../search.spec.ts, operationmanifest.spec.ts) which means unit tests were added. The Test Plan should reflect this.

  • Recommendation: Update the Test Plan checkboxes to accurately reflect what's present in the diff:

    • Unit tests added/updated — (there are new unit tests in libs/logic-apps-shared/src/...)
    • E2E tests added/updated — (none found in the diff; keep unchecked unless you add them)
    • Manual testing completed — keep if you did manual validation
    • Add a brief note on which areas were tested manually (you already have "Standalone designer (Consumption mode)")

    Note: Please ensure CI test files execute and pass in your branch (run the vitest suites locally or via CI) since there are new unit tests.


⚠️ Contributors

  • Assessment: Contributors section includes @Bhavd13 which is good.
  • Recommendation: Optionally add PM/Designer/reviewer handles if they contributed; not required but helpful for crediting.

⚠️ Screenshots/Videos

  • Assessment: No screenshots provided. This appears mostly non-visual (search additions), so screenshots are optional.
  • Recommendation: If the search menu UI changed visually, add a screenshot of the search menu showing the A2A result. Otherwise this is fine to omit.

Summary Table

Section Status Recommendation
Title ⚠️ Improve to conventional commit format and add scope
Commit Type No change needed
Risk Level Update to Medium in body and add risk:medium GitHub label
What & Why OK; optionally provide ticket/link
Impact of Change ⚠️ Expand slightly to list specific modules affected
Test Plan Mark Unit tests added/updated and ensure CI runs them
Contributors ⚠️ OK; optionally add more contributors if applicable
Screenshots/Videos ⚠️ Optional; add if there is a visible UI change

Final notes and concrete next steps (what to change so this PR can pass):

  1. Update PR title to follow conventional-commit with scope, e.g.: feat(search): Add A2A Request to Consumption search menu.
  2. Change Risk Level in PR body from Low to Medium and add the GitHub label risk:medium to the PR so body and labels match. (Advised risk is risk:medium based on the diff.)
  3. Update Test Plan checkboxes to reflect the added unit tests:
    • Check "Unit tests added/updated" and include a line calling out the added test files (e.g., libs/logic-apps-shared/src/.../search.spec.ts and operationmanifest.spec.ts).
  4. Ensure the new unit tests run in CI and pass; if there are test failures, fix them before merging.
  5. (Optional) Add a short note in Impact of Change listing the main files/modules changed (search, consumption manifests, operation manifests, designer consumption files) to help reviewers.

Please update the PR title/body and labels as recommended and re-request review. Thank you for the thorough implementation and tests — once the label and test plan are corrected this should be ready for final review.


Last updated: Fri, 19 Dec 2025 10:37:49 GMT

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for the A2A (Agent-to-Agent) Request trigger in the Consumption search menu, enabling users to discover and add A2A triggers when building agentic workflows. The feature introduces a new "nested agent" operation type that allows invoking agent workflows with an agent loop.

Key changes:

  • Added getAgentWorkflows() method to filter workflows with Agent triggers
  • Introduced invokeNestedAgentOperation action for calling nested agent workflows
  • Added A2A Request trigger group to the search/connector lists

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
libs/logic-apps-shared/src/designer-client-services/lib/search.ts Added getAgentWorkflows() interface method for retrieving agent workflows
libs/logic-apps-shared/src/designer-client-services/lib/consumption/search.ts Added A2A operation and group to consumption search connectors and operations
libs/logic-apps-shared/src/designer-client-services/lib/consumption/operations/invokeWorkflow.ts Added invokeNestedAgentOperation definition for nested agent workflow invocation
libs/logic-apps-shared/src/designer-client-services/lib/consumption/operationmanifest.ts Added nestedagent type handling and manifest mapping
libs/logic-apps-shared/src/designer-client-services/lib/consumption/manifests/invokeNestedAgent.ts New manifest defining inputs/outputs for nested agent operation
libs/logic-apps-shared/src/designer-client-services/lib/consumption/__tests__/operationmanifest.spec.ts Added unit tests for nestedagent operation type handling
libs/logic-apps-shared/src/designer-client-services/lib/base/search.ts Implemented getAgentWorkflows() to filter workflows by Agent kind triggers
libs/logic-apps-shared/src/designer-client-services/lib/base/__test__/search.spec.ts Added comprehensive unit tests for agent workflow filtering logic
libs/logic-apps-shared/src/designer-client-services/lib/__test__/__mocks__/builtInOperationResponse.ts Added mock data for invokeNestedAgent operation in tests
libs/designer/src/lib/ui/panel/recommendation/azureResourceSelection.tsx Added UI handling for nested agent workflow selection
libs/designer/src/lib/common/constants.ts Added constant for nested agent workflow action type
libs/designer-v2/src/lib/ui/panel/recommendation/azureResourceSelection.tsx Added UI handling for nested agent workflow selection (designer v2)
libs/designer-v2/src/lib/common/constants.ts Added constant for nested agent workflow action type (designer v2)
apps/Standalone/src/templates/app/TemplatesConsumption.tsx Registered invokenestedagent operation in templates
apps/Standalone/src/designer/app/AzureLogicAppsDesigner/laDesignerConsumptionV2.tsx Registered invokenestedagent operation in designer v2
apps/Standalone/src/designer/app/AzureLogicAppsDesigner/laDesignerConsumption.tsx Registered invokenestedagent operation in designer v1
Localize/lang/strings.json Added localization string for agent loop workflow selection

properties: {
iconUri: invokeWorkflowGroup.properties.iconUri,
brandColor: invokeWorkflowGroup.properties.brandColor,
summary: 'Choose a Logic Apps workflow',
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The summary says "Choose a Logic Apps workflow" but this is specifically for nested agent workflows. This should be updated to match the description and accurately reflect what this operation does, such as "Choose a nested agent workflow" to be consistent with the operation definition in invokeWorkflow.ts line 55.

Suggested change
summary: 'Choose a Logic Apps workflow',
summary: 'Choose a nested agent workflow',

Copilot uses AI. Check for mistakes.

inputs: {
type: 'object',
required: ['host', 'taskMessage'],
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The required field lists 'taskMessage' as a required input parameter, but based on the operation definition and similar patterns for invoke workflow operations, this should be validated. Typically, only the 'host' parameter is required for workflow invocation operations. Verify whether 'taskMessage' is truly mandatory for the nestedagent operation type or if it should be optional.

Suggested change
required: ['host', 'taskMessage'],
required: ['host'],

Copilot uses AI. Check for mistakes.
Comment on lines +118 to +119
test('should return manifest for invokeWorkflow operation', async () => {
const result = await operationManifestService.getOperationManifest('/connectionProviders/workflow', 'invokeWorkflow');
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test name refers to 'invokeWorkflow' but should be 'invokenestedagent' to match the actual operation being tested. This inconsistency could cause confusion when debugging test failures.

Suggested change
test('should return manifest for invokeWorkflow operation', async () => {
const result = await operationManifestService.getOperationManifest('/connectionProviders/workflow', 'invokeWorkflow');
test('should return manifest for invokenestedagent operation', async () => {
const result = await operationManifestService.getOperationManifest('/connectionProviders/workflow', 'invokenestedagent');

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant