Skip to content

feat(designer): Add Foundry Agent v2 inline details and save integration#8874

Merged
ccastrotrejo merged 22 commits intomainfrom
feat/foundry-agent-v2-picker
Mar 4, 2026
Merged

feat(designer): Add Foundry Agent v2 inline details and save integration#8874
ccastrotrejo merged 22 commits intomainfrom
feat/foundry-agent-v2-picker

Conversation

@ccastrotrejo
Copy link
Contributor

@ccastrotrejo ccastrotrejo commented Mar 3, 2026

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

Adds Foundry Agent v2 support with an inline details panel in the designer parameters tab. When a Foundry connection is selected and an agent is picked, users now see:

  • Agent picker — Searchable combobox to select from available Foundry agents (rendered at the top of the parameters tab)
  • Model dropdown — Shows available deployments from the Foundry project, allows switching models inline
  • Instructions textarea — Pre-loaded from the agent, editable inline with "Defined in Foundry" badge
  • Tools summary — Lists the agent's configured tools (code_interpreter, file_search, etc.)
  • Edit in Foundry Portal link — Direct link to edit the agent in the AI Foundry portal

Changes to model and instructions are batched and saved back to Foundry when the workflow is saved via flushPendingFoundryUpdates(). Pending edits persist across panel close/reopen via a module-level store.

Key changes:

  • New components: FoundryAgentPicker and FoundryAgentDetails in designer-ui
  • New API client: foundryAgentService.tslistFoundryAgents(), updateFoundryAgent(), listFoundryModels() (data-plane API)
  • Save flow integration: flushPendingFoundryUpdates() wired into Standalone v1/v2 save flows
  • Serialization fix: deploymentId included in serialized workflow for FoundryAgentService connections
  • Agent connections fix: Non-agentic (Stateful) workflows with Agent actions now properly merge agent connections
  • UX fixes: Agent picker and Foundry details render at the top of the parameters tab; AI model and system instructions hidden when managed by Foundry; pending edits persist across panel close/reopen
  • Security hardening: URL hostname swap uses URL parser; regex uses non-greedy quantifiers
  • All changes mirrored in both libs/designer and libs/designer-v2

Impact of Change

  • Users: Foundry Agent v2 users can view and edit agent model, instructions, and tools directly in the Logic Apps designer without switching to the Foundry portal
  • Developers: New FoundryAgentDetails component, foundryUpdates module, and hooks (useFoundryAgentsForNode, useFoundryModelsForNode) available for reuse
  • System: Adds data-plane API calls to Foundry (deployments list, agent update) during design time; agent updates are batched and flushed on save

Test Plan

  • Unit tests added/updated
  • E2E tests added/updated
  • Manual testing completed
  • Tested in: Standalone designer with live Foundry connections (create new + select existing)

New tests (25 total):

  • foundryAgentService.spec.ts (11 tests) — endpoint builder, update API payload envelope, model listing, error handling
  • foundryUpdates.spec.ts (8 tests) — set/clear/has/flush pending updates store
  • foundryAgentDetails.spec.tsx (6 tests) — component rendering, portal link, tools summary

Manual test scenarios:

  • Create new Foundry connection → pick agent → verify inline details appear
  • Select existing Foundry connection → verify inline details appear
  • Switch between agents → verify instructions/model update correctly (no stale state)
  • Change model → save → verify Foundry API receives update
  • Edit instructions → close panel → reopen → verify edits persist
  • Agent picker and Foundry details render at the top, AI model and instructions hidden
  • Stateful workflow with Agent action → verify agent connections are properly merged

Contributors

@ccastrotrejo

Screenshots/Videos

CleanShot 2026-03-04 at 10 52 45@2x

ccastrotrejo and others added 16 commits February 26, 2026 12:47
- Add foundryAgentId, foundryAgentName, foundryAgentVersion to agent manifest
  with visibility conditions for FoundryAgentService model type
- Hide AI model (deploymentId) when Foundry is selected
- Create Foundry Agent API client (foundryAgentService.ts) for v2 agents
- Add buildProjectEndpointFromResourceId to resolve Foundry endpoints
- Add getFoundryAccessToken to ICognitiveServiceService interface
- Create useFoundryAgentsForNode hook for dynamic agent fetching
- Wire Foundry agent combobox in getEditorAndOptions (designer + v2)
- Auto-populate foundryAgentName/foundryAgentVersion on agent selection
- Fix agent connection serialization for Stateful workflows
- Generate Foundry data-plane token in generateArmToken script
- Add FoundryAgentPicker component in designer-ui

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add FoundryAgentDetails component showing model dropdown, editable
instructions, tools summary, and Edit in Foundry Portal link inline
after the agent picker. Hide system instructions when Foundry connection
is active. Fix existing connection detection by mapping display names to
manifest values and adding cognitiveServiceAccountId regex fallback.
Add data-plane API for listing models and updating agents.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…y agents

Add FoundryAgentService to deploymentId visibility dependencies in the
manifest so the parameter is serialized. Sync deploymentId value when
a Foundry agent is selected or the model dropdown changes. Hide the
raw AI model field in the UI since FoundryAgentDetails already provides
the model dropdown.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…hange

Dispatch setIsWorkflowDirty(true) in handleFoundryModelChange and
handleFoundryInstructionsChange so the save button activates when
users modify Foundry agent settings inline.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…x textarea resize

- Add flushPendingFoundryUpdates() call to all 4 host save flows
  (Standalone v1/v2, VS Code v1/v2) so Foundry agent model/instructions
  changes are pushed to the Foundry API on workflow save
- Fix textarea resize handle positioning in FoundryAgentDetails by
  removing conflicting CSS resize property and targeting inner textarea

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…te API

The Foundry v2 agent update API requires model and instructions to be
nested inside a 'definition' property with kind: 'agent'. Top-level
name/description remain at the root level.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…odel

Pass pendingFoundryModel as selectedModel prop to FoundryAgentDetails
so the dropdown reflects the user's selection immediately instead of
always showing the original agent.model value.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add unit tests for foundryAgentService (11 tests: endpoint builder,
  update payload envelope, model listing, error handling)
- Add unit tests for foundryUpdates (8 tests: set/clear/has/flush)
- Add unit tests for FoundryAgentDetails component (6 tests: render,
  portal link, tools summary)
- Fix stale pending state when switching Foundry agents by resetting
  pendingFoundryModel and pendingFoundryInstructions on agent change
- Extract normalizeEndpoint() helper to DRY up endpoint construction
- Apply to both designer and designer-v2

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reverts the change from Object.keys(newAgentConnections).length > 0
back to isAgentWorkflow(workflow?.kind ?? '') in both laDesigner.tsx
and laDesignerV2.tsx.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…th agent actions

Stateful workflows can have Agent actions with agent connections (e.g.
Foundry agents). The isAgentWorkflow check alone is too restrictive
since it only matches 'agentic' or 'agent' kind workflows. Add fallback
check for newAgentConnections to ensure they are always merged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Use URL parser for hostname swap instead of substring includes/replace
  to ensure only the hostname portion is matched (not arbitrary path)
- Use non-greedy regex quantifiers in buildProjectEndpointFromResourceId
  to avoid polynomial backtracking on crafted input
- Replace trailing-slash strip with endsWith check + single replace

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ture

- Remove foundryAgentId from unconditional required array in manifest
- Fix flushPendingFoundryUpdates to only clear successful entries, surface failures
- Gracefully skip flush when token getter unavailable (VS Code host)
- Clear pending update from global map on agent switch to prevent stale flushes
- Replace label string matching with stable parameterKey identifiers
- Store agent.id (not name) as combobox value for foundryAgentId parameter
- Switch instructions textarea from onBlur to onChange to prevent data loss
- Add normalizeEndpoint to listFoundryModels for consistency
- URL-encode segments in buildFoundryPortalUrl
- Localize all hard-coded strings in FoundryAgentDetails and FoundryAgentPicker
- Fix React.FocusEvent import for automatic JSX runtime compatibility
- Update tests for IntlProvider and new flush behavior

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Not needed for this feature scope.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 3, 2026 22:11
@github-actions
Copy link

github-actions bot commented Mar 3, 2026

🤖 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(designer): Add Foundry Agent v2 inline details and save integration
  • Issue: None — title is clear, scoped to the designer, and follows conventional commit style.
  • Recommendation: Keep as-is. If you want to be even more precise for changelogs, consider adding a short parenthetical about save-time batching (optional): feat(designer): Add Foundry Agent v2 inline details and save integration (batch updates on save)

Commit Type

  • Properly selected (feature).
  • Note: Only one box is checked which is correct.

⚠️ Risk Level

  • Assessment: The PR body marks this as "Medium" and the repo contains a risk:medium label — that matches the PR metadata.
  • Why I'm flagging: based on the code diff this change introduces sizeable surface area (many files across libs and apps), new network/data-plane integrations (Foundry agent APIs), changes to save flow (flushPendingFoundryUpdates called during save), serialization changes (deploymentId added), cross-cutting behavior (modifying designer save flow and parameter handling in both designer and designer-v2), and new environment/token handling. Those changes could affect user workflows, produce remote side-effects on Foundry agents during normal saves, and touch persistence/serialization logic. For those reasons I advise raising the risk to: High.
  • Recommendation: Update the PR Risk Level to High and add or update the risk:high label on the PR. Also include an explicit justification in the PR body (see suggested text below).

What & Why

  • Current: The What & Why section is detailed and concise. It explains the feature, components added, save flow integration, and UX/serialization/security changes.
  • Issue: None functional. One improvement: add a short paragraph describing the rollback/mitigation plan in case foundry updates fail (e.g., pending update semantics, how failed flushes are surfaced/handled, telemetry/alerts to monitor failures).
  • Recommendation: Add a small note like: "Rollback/mitigation: pending Foundry updates remain queued on failure; flushPendingFoundryUpdates is non-blocking on save (errors are logged) — add monitoring and a manual retry path if needed." This clarifies operational impact for reviewers.

Impact of Change

  • The Impact section is well-scoped (Users / Developers / System).
  • Recommendation: Under System, call out that agent updates happen at save time and will call data-plane Foundry APIs — include a short notice about rate-limiting and potential latency impact during save operations, and note the fallback behavior when getFoundryAccessToken is not available.
    • Users: Inline editing of Foundry agent model/instructions; preserved edits across UI sessions; potential save-time network calls to Foundry.
    • Developers: New reusable components and hooks; new foundryUpdates module and API client to review for error handling.
    • System: Adds data-plane calls at save; recommend monitoring around save latency & failures.

Test Plan

  • Assessment: The PR claims unit tests were added/updated and manual testing completed. I verified multiple new unit tests in the diff (foundryAgentService.spec.ts, foundryUpdates.spec.ts in both libs, foundryAgentDetails.spec.tsx, and others). That matches the claimed Unit tests count.
  • Issue / Recommendation:
    • E2E tests are not included (unchecked). Given this is an integration with external data-plane APIs and changes save behavior, it is strongly recommended to include at least one integration/E2E test that exercises the end-to-end save flow (mocking Foundry responses), or add a clear explanation in the Test Plan why E2E isn't feasible and how this will be monitored in prod/staging.
    • Add a unit/integration test that validates the flushPendingFoundryUpdates() behavior when some updates succeed and others fail (I see tests for this in new files — good). Also add a smoke test covering DesignerCommandBar save integration to ensure the flush is invoked (or a mocked test asserting flushPendingFoundryUpdates is called during save flow).

⚠️ Contributors

  • Current: @ccastrotrejo is listed.
  • Assessment: OK. Reminder: if others (PMs / designers) contributed, mention them.
  • Recommendation: If any PMs/Designers reviewed or provided UX guidance, add them to Contributors so they receive credit.

Screenshots/Videos

  • Current: A screenshot is included. Good for a visual UX change.
  • Assessment: OK.

Summary Table

Section Status Recommendation
Title Keep current title (optionally append short note for changelog)
Commit Type No change
Risk Level ⚠️ Change to High in PR body and add risk:high label; justify elevated risk
What & Why Add short rollback/mitigation paragraph
Impact of Change Add explicit note about save-time network calls, latency, and monitoring
Test Plan Add E2E/integration test or explanation why omitted; ensure a save-invocation test exists
Contributors ⚠️ Add additional contributors if applicable
Screenshots/Videos OK

Summary and next steps

  • PASS: The PR body follows the required template and the title is good. Unit tests claimed in the PR are present in the diff. Labels include risk:medium which matches the PR body — however, due to the breadth and nature of changes I advise increasing the PR Risk Level to High.

Actionable recommendations to update the PR before merge:

  1. Change Risk Level in the PR body to "High" and add the risk:high label on the PR. In the PR body include a short justification (example):
    • "Risk: High — this change touches designer save flows, workflow serialization (deploymentId), network calls to Foundry data-plane on save, and introduces cross-cutting state for pending foundry updates. Potential user impact includes unexpected remote agent updates on save, and save latency increases."
  2. Add an explicit paragraph on rollback/mitigation and monitoring (where to look for failures, how the queued updates behave on failure). Example text to paste under What & Why:
    • "Rollback & mitigation: pending Foundry updates are queued in the module-level store and only cleared on successful flush. flushPendingFoundryUpdates() will leave failed updates in the queue for retry; errors are currently logged and bubbled as an aggregated error in tests. Recommend adding telemetry, a visible retry path in the UI, and a short runbook for operational recovery."
  3. Add or document an E2E/integration test for the save flow that exercises the flush behavior (mock the Foundry data-plane). If not possible in this PR, document why (e.g., infra constraints) and create a backlog ticket to add it.
  4. Security & token handling: confirm the token fallback is intentional and safe — specifically the new code sets getFoundryAccessToken to environment.foundryToken ?? environment.armToken ?? ''. Please confirm that using armToken as fallback is correct for Foundry data-plane calls (audience/scope differences). If not, explicitly restrict usage to foundryToken only and fail gracefully otherwise.
  5. Feature gating / rollout: consider a feature flag (or remote config) to gate the new Foundry inline details and save integration for staged rollout, allowing immediate rollback if issues are observed in production.
  6. Add a brief note in the PR Test Plan about performance considerations and any manual performance checks you ran (e.g., save latency with 0/1/10 pending updates) so reviewers understand runtime impact.
  7. Add a short changelog entry or release-note mention describing the new Foundry Agent v2 support and the save-time batching behavior.

Please update the PR description to reflect the risk change + mitigation/monitoring steps and add/adjust labels. Once you update risk and add the short clarifications above (especially the token fallback confirmation and E2E / mitigation note), this looks ready from a PR-title/body and tests perspective.


Thank you for the thorough PR and for adding unit tests. If you'd like, I can open a suggested PR body diff with the exact text to add for the Risk Level justification, rollback plan, and Test Plan note.


Last updated: Wed, 04 Mar 2026 15:59:54 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

Adds Azure AI Foundry “Agents (v2)” support to the Logic Apps designer experience, enabling users to pick a Foundry agent and edit agent-managed settings (model + instructions) while keeping workflow serialization and Foundry-side configuration in sync.

Changes:

  • Introduces a Foundry data-plane client (foundryAgentService) plus token plumbing for Standalone to list/update Foundry v2 agents and list project model deployments.
  • Updates agent-loop manifest + parameters UI to support a Foundry agent picker and an inline details editor that syncs model/instructions back into workflow parameters.
  • Adds “pending Foundry updates” buffering and flush-on-save behavior (Designer + Designer v2), plus unit tests and new designer-ui components.

Reviewed changes

Copilot reviewed 37 out of 38 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
scripts/generateArmToken.js Generates an additional Foundry-scoped token file for Standalone local dev.
.gitignore Ignores foundryToken.json alongside armToken.json.
apps/Standalone/src/environments/environment.ts Loads foundryToken into the Standalone environment.
apps/Standalone/src/designer/app/AzureLogicAppsDesigner/laDesigner.tsx Wires getFoundryAccessToken into BaseCognitiveServiceService; adjusts agent connection persistence.
apps/Standalone/src/designer/app/AzureLogicAppsDesigner/laDesignerV2.tsx Same as above for the v2 designer host.
apps/Standalone/src/designer/app/AzureLogicAppsDesigner/DesignerCommandBar.tsx Flushes pending Foundry updates before saving workflows.
apps/Standalone/src/designer/app/AzureLogicAppsDesigner/DesignerCommandBarV2.tsx Flushes pending Foundry updates before saving (incl. autosave).
libs/logic-apps-shared/src/designer-client-services/lib/standard/foundryAgentService.ts New Foundry data-plane API client (list agents/models, get/update agent).
libs/logic-apps-shared/src/designer-client-services/lib/standard/index.ts Re-exports Foundry service APIs/types.
libs/logic-apps-shared/src/designer-client-services/lib/standard/manifest/agentloop.ts Adds Foundry agent parameters (foundryAgentId/name/version) and adjusts visibility dependencies.
libs/logic-apps-shared/src/designer-client-services/lib/standard/connection.ts Carries agent model type through local connection conversion.
libs/logic-apps-shared/src/designer-client-services/lib/cognitiveService.ts Extends cognitive service interface with optional Foundry token getter.
libs/logic-apps-shared/src/designer-client-services/lib/base/cognitiveService.ts Adds optional getFoundryAccessToken on the base implementation.
libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/custom/useCognitiveService.ts Adds hooks to derive Foundry project endpoint/resourceId and query agents/models.
libs/designer-v2/src/lib/ui/panel/connectionsPanel/createConnection/custom/useCognitiveService.ts Same as above for designer-v2.
libs/designer/src/lib/ui/panel/nodeDetailsPanel/tabs/parametersTab/helpers.ts Adds helper to detect foundryAgentId parameter.
libs/designer-v2/src/lib/ui/panel/nodeDetailsPanel/tabs/parametersTab/helpers.ts Same helper for designer-v2.
libs/designer/src/lib/ui/panel/nodeDetailsPanel/tabs/parametersTab/index.tsx Adds Foundry agent selection handling, inline details panel, and workflow-parameter syncing.
libs/designer-v2/src/lib/ui/panel/nodeDetailsPanel/tabs/parametersTab/index.tsx Same Foundry UI logic for designer-v2.
libs/designer/src/lib/common/utilities/Utils.ts Adds AgentUtils.isFoundryAgentIdParameter.
libs/designer-v2/src/lib/common/utilities/Utils.ts Same utility addition for designer-v2.
libs/designer/src/lib/core/actions/bjsworkflow/foundryUpdates.ts New pending-update buffer + flush mechanism for Foundry agent updates.
libs/designer-v2/src/lib/core/actions/bjsworkflow/foundryUpdates.ts Same pending-update logic for designer-v2.
libs/designer/src/lib/core/index.ts Exports Foundry pending-update APIs.
libs/designer-v2/src/lib/core/index.ts Same exports for designer-v2.
libs/designer/src/lib/core/actions/bjsworkflow/connections.ts Improves mapping of displayed agent model type → manifest value; adds Foundry fallback detection.
libs/designer-v2/src/lib/core/actions/bjsworkflow/connections.ts Same mapping updates for designer-v2.
libs/designer-ui/src/lib/agentinstruction/index.tsx Adds hideSystemInstructions support to the agent instruction editor.
libs/designer-ui/src/lib/settings/settingsection/settingTokenField.tsx Allows hiding the label for agent-instruction editor and forwards hideSystemInstructions.
libs/designer-ui/src/lib/foundryagentdetails/index.tsx New inline UI for viewing/editing Foundry agent details (model/instructions/tools + portal link).
libs/designer-ui/src/lib/foundryagentdetails/styles.ts Styles for Foundry agent details panel.
libs/designer-ui/src/lib/foundryagentdetails/test/foundryAgentDetails.spec.tsx Snapshot-ish rendering tests for Foundry agent details.
libs/designer-ui/src/lib/foundryagentpicker/index.tsx New (exported) Foundry agent picker component.
libs/designer-ui/src/lib/foundryagentpicker/styles.ts Styles for the Foundry agent picker.
libs/designer-ui/src/lib/index.ts Exports the new Foundry UI components.
libs/logic-apps-shared/src/designer-client-services/lib/standard/tests/foundryAgentService.spec.ts Unit tests for Foundry API client helper functions.
libs/designer/src/lib/core/actions/bjsworkflow/test/foundryUpdates.spec.ts Unit tests for the pending-update flush mechanism.
Localize/lang/strings.json Adds localized strings for Foundry picker/details UI.

@github-actions
Copy link

github-actions bot commented Mar 3, 2026

📊 Coverage Check

The following changed files need attention:

⚠️ libs/designer-v2/src/lib/common/utilities/Utils.ts - 66% covered (needs improvement)
⚠️ libs/designer-v2/src/lib/core/actions/bjsworkflow/connections.ts - 41% covered (needs improvement)
⚠️ libs/designer-v2/src/lib/ui/panel/connectionsPanel/createConnection/custom/useCognitiveService.ts - 18% covered (needs improvement)
⚠️ libs/designer-v2/src/lib/ui/panel/nodeDetailsPanel/tabs/parametersTab/helpers.ts - 33% covered (needs improvement)
⚠️ libs/designer/src/lib/common/utilities/Utils.ts - 66% covered (needs improvement)
⚠️ libs/designer/src/lib/core/actions/bjsworkflow/connections.ts - 41% covered (needs improvement)
⚠️ libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/custom/useCognitiveService.ts - 18% covered (needs improvement)
⚠️ libs/designer/src/lib/ui/panel/nodeDetailsPanel/tabs/parametersTab/helpers.ts - 34% covered (needs improvement)
⚠️ libs/logic-apps-shared/src/designer-client-services/lib/standard/connection.ts - 10% covered (needs improvement)
⚠️ libs/designer-ui/src/lib/settings/settingsection/settingTokenField.tsx - 27% covered (needs improvement)

Please add tests for the uncovered files before merging.

…cross panel close

- Apply filterFoundryManagedSettings to all settings (not just after agent picker)
  so AI model and Instructions for agent are hidden when Foundry manages them
- Move Agent picker to render first, with Foundry details immediately below
- Add getPendingFoundryUpdate getter to restore pending model/instructions from
  the module-level Map when the panel remounts
- Add selectedInstructions prop to FoundryAgentDetails so restored pending
  instructions display in the textarea on reopen

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@ccastrotrejo ccastrotrejo changed the title Feat/foundry agent v2 picker feat(designer): Add Foundry Agent v2 inline details, save integration, and UX fixes Mar 3, 2026
@ccastrotrejo ccastrotrejo added the risk:medium Medium risk change with potential impact label Mar 3, 2026
ccastrotrejo and others added 2 commits March 3, 2026 17:45
…odel match, and fallback picker display

- Add useEffect to clear localInstructions when agent.id changes so
  switching agents never shows the previous agent's edited instructions
- Guard models.find startsWith check behind non-empty effectiveModel to
  prevent false matches when agent.model is empty string
- Use selectedAgent.name ?? selectedAgent.id as Combobox display value
  so agents with null/empty names still render their selection

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The fallback path (Foundry connection active, no agent selected yet)
was filtering out AI model and instructions but not reordering the
Agent picker to the top. Now both paths consistently show the Agent
picker first.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ccastrotrejo and others added 3 commits March 4, 2026 10:06
Add coverage for listFoundryAgents, listAllFoundryAgents, getFoundryAgent,
endpoint normalization, auto-pagination, agent field normalization with
missing versions, URL encoding, partial update payloads, error fallbacks,
and deployment name filtering.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Cover setPendingFoundryUpdate, clearPendingFoundryUpdate,
getPendingFoundryUpdate, hasPendingFoundryUpdates, and
flushPendingFoundryUpdates including multi-node tracking,
overwrite behavior, partial failure retention, aggregated
error messages, non-Error rejections, and token unavailability.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…fect

Replace suppressed exhaustive-deps with a useRef to track previous
agent ID. The dependency array is now complete and the dispatch only
fires when selectedFoundryAgent.id actually changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@ccastrotrejo ccastrotrejo changed the title feat(designer): Add Foundry Agent v2 inline details, save integration, and UX fixes feat(designer): Add Foundry Agent v2 inline details and save integration Mar 4, 2026
@ccastrotrejo ccastrotrejo merged commit eda9dfd into main Mar 4, 2026
15 checks passed
@ccastrotrejo ccastrotrejo deleted the feat/foundry-agent-v2-picker branch March 4, 2026 16:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-validated risk:medium Medium risk change with potential impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants