Skip to content

Conversation

@nowgnuesLee
Copy link
Contributor

@nowgnuesLee nowgnuesLee commented Sep 19, 2025

resolves #4256 (FR-1448)

This PR adds support for selecting multiple agents when launching a session, available for Backend.AI manager version 25.15.0 and above.

Key changes:

  • Modified AgentSelect component to handle multiple agent selection
  • Updated agent selection logic in ResourceAllocationFormItems to support multi-agent mode
  • Added special handling for the "auto" option in multi-select mode
  • Implemented proper agent_list generation in session creation payload
  • Added 'multi-agents' feature detection for manager version 25.15.0+
  • Changed agent default value from string to array format ['auto']
  • Removed restrictions that previously disabled cluster settings when a specific agent was selected

for testing, using test server which supports multi node session

how to test:

  • single mode
    • Please verify that the agent_list is sent as a string[] when using multi-agents.
  • multi mode
    • In versions 25.14 and below, the length of the agent_list must be equal to the cluster_size.
    • Please verify that the agent_list is being passed as a string array when using multi-agents.

CleanShot 2025-09-19 at 17.15.50@2x.png

CleanShot 2025-09-19 at 17.15.30@2x.png

Checklist:

  • Documentation
  • Minium required manager version: 25.15.0
  • Specific setting for review
  • Minimum requirements to check during review
  • Test case(s) to demonstrate the difference of before/after

@github-actions github-actions bot added area:lib Library and SDK related issue. size:M 30~100 LoC labels Sep 19, 2025
Copy link
Contributor Author


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • flow:merge-queue - adds this PR to the back of the merge queue
  • flow:hotfix - for urgent hot fixes, skip the queue and merge this PR next

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has required the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@nowgnuesLee nowgnuesLee marked this pull request as ready for review September 19, 2025 08:19
@Copilot Copilot AI review requested due to automatic review settings September 19, 2025 08:19
@nowgnuesLee nowgnuesLee force-pushed the feat/select-multi-agents branch from 98e011d to 589e38d Compare September 19, 2025 08:20
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 enables multi-agent selection when creating multi-node sessions for Backend.AI manager version 25.15.0 and above. It transforms the agent selection from a single dropdown to a multi-select component while maintaining backward compatibility.

  • Added 'multi-agents' feature detection for manager version 25.15.0+
  • Modified AgentSelect component to support multiple agent selection with special "auto" handling
  • Updated session creation payload logic to properly handle agent arrays and cluster size requirements

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
src/lib/backend.ai-client-esm.ts Added feature flag detection for multi-agents support
react/src/pages/SessionLauncherPage.tsx Updated session creation payload logic and default agent value format
react/src/components/ResourceAllocationFormItems.tsx Modified form to support multi-agent selection and removed cluster restrictions
react/src/components/AgentSelect.tsx Enhanced component to handle multiple selection with auto option logic

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@github-actions
Copy link

github-actions bot commented Sep 19, 2025

Coverage report for ./react

St.
Category Percentage Covered / Total
🔴 Statements
4.41% (-0.01% 🔻)
501/11352
🔴 Branches
3.55% (-0.01% 🔻)
285/8019
🔴 Functions
2.55% (-0% 🔻)
90/3529
🔴 Lines
4.39% (-0.01% 🔻)
487/11096
Show files with reduced coverage 🔻
St.
File Statements Branches Functions Lines
🔴
... / AgentSelect.tsx
3.7% (-1.3% 🔻)
0% 0%
3.7% (-1.3% 🔻)
🔴
... / ResourceAllocationFormItems.tsx
13.92% (+0.06% 🔼)
9.74% (-0.06% 🔻)
12.16%
13.68% (+0.06% 🔼)

Test suite run success

114 tests passing in 13 suites.

Report generated by 🧪jest coverage report action from f0ef289

Copy link
Contributor

@ironAiken2 ironAiken2 left a comment

Choose a reason for hiding this comment

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

please resolve the conflicts :)

Copy link
Member

@yomybaby yomybaby left a comment

Choose a reason for hiding this comment

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

Code improvements

1. ResourceAllocationFormItems.tsx

  • Improved code readability by removing spread operator and passing props directly
  • mode and labelRender props are now more explicitly defined

2. SessionLauncherPage.tsx

  • Simplified array handling by replacing Array.isArray() check with _.castArray()
  • Better utilization of lodash utility function for cleaner code

@yomybaby yomybaby force-pushed the feat/select-multi-agents branch from 13c1e92 to a30d7fe Compare October 1, 2025 05:02
@yomybaby yomybaby force-pushed the feat/select-multi-agents branch from a30d7fe to f0ef289 Compare October 1, 2025 06:52
Copy link
Contributor

@agatha197 agatha197 left a comment

Choose a reason for hiding this comment

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

please resolve the conflicts. and is there any test node? you can reply it in jira comment or teams.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:lib Library and SDK related issue. size:M 30~100 LoC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

User want to select multiple agents when creating a multi-node session.

4 participants