Skip to content

feat(FR-2904): replace replica status enum filter with running/terminated radio group#7437

Merged
graphite-app[bot] merged 1 commit into
mainfrom
feat/FR-2904-replica-status-radio-group
May 15, 2026
Merged

feat(FR-2904): replace replica status enum filter with running/terminated radio group#7437
graphite-app[bot] merged 1 commit into
mainfrom
feat/FR-2904-replica-status-radio-group

Conversation

@agatha197
Copy link
Copy Markdown
Contributor

@agatha197 agatha197 commented May 15, 2026

Resolves #7434 (FR-2904)

Stacked on top of #7435.

Summary

  • Removed the status enum option from BAIGraphQLPropertyFilter in DeploymentReplicasTab and replaced it with a BAIRadioGroup (Running / Terminated), mirroring the deployment list pattern.
  • Running selects every status except TERMINATED (status.notIn: ['TERMINATED']); Terminated selects only TERMINATED.
  • The category persists in the URL via a new rStatusCategory query param and merges with the user-defined filter at query time, so toggling the category does not clobber other filters.
  • Removed the now-unused replicaStatusOptions and the WARMING_UP TODO comment block.

Test plan

  • Open a deployment's Replicas tab — verify the Running / Terminated radio appears next to the property filter.
  • Toggle to Terminated — verify only TERMINATED replicas show; toggle back to Running — verify all other statuses show.
  • Apply a trafficStatus filter, then toggle the radio — verify both filters apply (not overwritten).
  • Refresh the page with a non-default rStatusCategory in the URL — verify the radio reflects the URL state.
  • bash scripts/verify.sh passes.

Copy link
Copy Markdown
Contributor Author

agatha197 commented May 15, 2026


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 changes, fast-track this PR to the front of the merge queue

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.

@agatha197 agatha197 marked this pull request as ready for review May 15, 2026 09:33
Copilot AI review requested due to automatic review settings May 15, 2026 09:33
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 15, 2026

Coverage Report for react-coverage (./react)

Status Category Percentage Covered / Total
🔵 Lines 6.51% 1785 / 27388
🔵 Statements 5.36% 1980 / 36936
🔵 Functions 5.25% 296 / 5634
🔵 Branches 3.74% 1293 / 34533
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
react/src/components/DeploymentReplicasTab.tsx 0% 0% 0% 0% 46-491
Generated in workflow #803 for commit b82b552 by the Vitest Coverage Report Action

Copy link
Copy Markdown
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

Updates the Deployment Replicas tab filtering UX to match the deployment list pattern by replacing the replica status enum property filter with a persisted Running/Terminated radio category that composes with the existing GraphQL property filter.

Changes:

  • Replaced the replica status enum filter option with a BAIRadioGroup toggle (Running vs Terminated).
  • Added rStatusCategory as a URL query param and merged it into the GraphQL ReplicaFilter at query/refetch time.
  • Removed the now-unused replicaStatusOptions and the stale WARMING_UP TODO block.

Comment thread react/src/components/DeploymentReplicasTab.tsx
Copy link
Copy Markdown
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.

LGTM

@graphite-app
Copy link
Copy Markdown

graphite-app Bot commented May 15, 2026

Merge activity

…ated radio group (#7437)

Resolves #7434 ([FR-2904](https://lablup.atlassian.net/browse/FR-2904))

Stacked on top of #7435.

## Summary
- Removed the `status` enum option from `BAIGraphQLPropertyFilter` in `DeploymentReplicasTab` and replaced it with a `BAIRadioGroup` (`Running` / `Terminated`), mirroring the deployment list pattern.
- `Running` selects every status except `TERMINATED` (`status.notIn: ['TERMINATED']`); `Terminated` selects only `TERMINATED`.
- The category persists in the URL via a new `rStatusCategory` query param and merges with the user-defined filter at query time, so toggling the category does not clobber other filters.
- Removed the now-unused `replicaStatusOptions` and the `WARMING_UP` TODO comment block.

## Test plan
- [ ] Open a deployment's Replicas tab — verify the `Running` / `Terminated` radio appears next to the property filter.
- [ ] Toggle to `Terminated` — verify only `TERMINATED` replicas show; toggle back to `Running` — verify all other statuses show.
- [ ] Apply a `trafficStatus` filter, then toggle the radio — verify both filters apply (not overwritten).
- [ ] Refresh the page with a non-default `rStatusCategory` in the URL — verify the radio reflects the URL state.
- [ ] `bash scripts/verify.sh` passes.

[FR-2904]: https://lablup.atlassian.net/browse/FR-2904?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
@graphite-app graphite-app Bot force-pushed the feat/FR-2904-extend-deployment-list-filters-columns branch from 5fd7e9b to ac8cb71 Compare May 15, 2026 12:13
@graphite-app graphite-app Bot force-pushed the feat/FR-2904-replica-status-radio-group branch from bb91225 to b82b552 Compare May 15, 2026 12:14
graphite-app Bot pushed a commit that referenced this pull request May 15, 2026
…rawer link, drop createdUserId, strictSelection on enum filters (#7439)

Resolves #7438([FR-2905](https://lablup.atlassian.net/browse/FR-2905))

Stacked on top of #7437.

## Summary

Follow-up polish on the deployment list & replicas tab (FR-2904 series). Bundled as one PR per the project's "avoid excessive PR splitting" convention.

- **Admin deployment list — Project column.** Replaced the raw project-ID cell with a `project name (BAIId)` cell. Name comes from `metadata.projectV2.basicInfo.name @SInCE(version: "26.4.3")` (DataLoader-resolved). ID stays copyable + ellipsis via `BAIId`.
- **Deployment list — Revision number drawer link.** The Applied-Revision column now opens `DeploymentRevisionDetailDrawer` on click, matching the pattern used in `DeploymentReplicasTab`. The `currentRevision` fragment ref is spread into `...DeploymentRevisionDetail_revision` for the drawer.
- **Drop `createdUserId` from the deployment list.** Both the admin column and the matching filter property were removed — the existing Owner / Creator column already surfaces the same information via `DeploymentOwnerInfo`. Orphan i18n key `deployment.filter.CreatedUserId` was removed from all 21 locale files.
- **Property filter — `strictSelection: true` on enum types.** Applied to the `trafficStatus` enum filter in `DeploymentReplicasTab` so the value must come from the provided options.

## Test plan

- [ ] Admin deployment list: open column settings, toggle the `Project` column on → confirm `project name (ID)` renders for deployments that have a project, and only the ID shows when name is unavailable (≤ 26.4.2 manager).
- [ ] Deployment list: enable the Revision Number column → click the link → confirm `DeploymentRevisionDetailDrawer` opens with the right revision.
- [ ] Admin deployment list: confirm the `Creator ID` column and the `Creator ID` admin filter are no longer present.
- [ ] Replicas tab: open the property filter, choose `TrafficStatus` → confirm input requires selection from `Active` / `Inactive` (typing arbitrary text is rejected).
- [ ] `bash scripts/verify.sh` — Relay / Lint / Format pass; TypeScript only reports pre-existing errors in unrelated pages.

[FR-2905]: https://lablup.atlassian.net/browse/FR-2905?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
Base automatically changed from feat/FR-2904-extend-deployment-list-filters-columns to main May 15, 2026 12:16
@graphite-app graphite-app Bot merged commit b82b552 into main May 15, 2026
8 checks passed
@graphite-app graphite-app Bot deleted the feat/FR-2904-replica-status-radio-group branch May 15, 2026 12:17
graphite-app Bot pushed a commit that referenced this pull request May 15, 2026
…rawer link, drop createdUserId, strictSelection on enum filters (#7439)

Resolves #7438([FR-2905](https://lablup.atlassian.net/browse/FR-2905))

Stacked on top of #7437.

## Summary

Follow-up polish on the deployment list & replicas tab (FR-2904 series). Bundled as one PR per the project's "avoid excessive PR splitting" convention.

- **Admin deployment list — Project column.** Replaced the raw project-ID cell with a `project name (BAIId)` cell. Name comes from `metadata.projectV2.basicInfo.name @SInCE(version: "26.4.3")` (DataLoader-resolved). ID stays copyable + ellipsis via `BAIId`.
- **Deployment list — Revision number drawer link.** The Applied-Revision column now opens `DeploymentRevisionDetailDrawer` on click, matching the pattern used in `DeploymentReplicasTab`. The `currentRevision` fragment ref is spread into `...DeploymentRevisionDetail_revision` for the drawer.
- **Drop `createdUserId` from the deployment list.** Both the admin column and the matching filter property were removed — the existing Owner / Creator column already surfaces the same information via `DeploymentOwnerInfo`. Orphan i18n key `deployment.filter.CreatedUserId` was removed from all 21 locale files.
- **Property filter — `strictSelection: true` on enum types.** Applied to the `trafficStatus` enum filter in `DeploymentReplicasTab` so the value must come from the provided options.

## Test plan

- [ ] Admin deployment list: open column settings, toggle the `Project` column on → confirm `project name (ID)` renders for deployments that have a project, and only the ID shows when name is unavailable (≤ 26.4.2 manager).
- [ ] Deployment list: enable the Revision Number column → click the link → confirm `DeploymentRevisionDetailDrawer` opens with the right revision.
- [ ] Admin deployment list: confirm the `Creator ID` column and the `Creator ID` admin filter are no longer present.
- [ ] Replicas tab: open the property filter, choose `TrafficStatus` → confirm input requires selection from `Active` / `Inactive` (typing arbitrary text is rejected).
- [ ] `bash scripts/verify.sh` — Relay / Lint / Format pass; TypeScript only reports pre-existing errors in unrelated pages.

[FR-2905]: https://lablup.atlassian.net/browse/FR-2905?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30~100 LoC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Expose all DeploymentFilter fields, ordering options, and missing table columns in deployment list

3 participants