Skip to content

feat: replace inline action buttons with dropdown menu and pin actions column in MCP clients table - #3486

Merged
akshaydeo merged 7 commits into
devfrom
05-14-chore_made_actions_sticky_on_the_workspace_mcp-registry_page
May 14, 2026
Merged

feat: replace inline action buttons with dropdown menu and pin actions column in MCP clients table#3486
akshaydeo merged 7 commits into
devfrom
05-14-chore_made_actions_sticky_on_the_workspace_mcp-registry_page

Conversation

@impoiler

@impoiler impoiler commented May 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Replaces the per-row inline action buttons (reconnect + delete) in the MCP clients table with a consolidated MoreHorizontal dropdown menu, and moves the actions column to a sticky right-pinned position so it remains visible when the table scrolls horizontally.

Changes

  • Replaced the individual Reconnect (with tooltip) and Delete (with inline AlertDialog) buttons with a single DropdownMenu triggered by a MoreHorizontal icon button.
  • The delete confirmation AlertDialog is now lifted out of the table row and controlled via a clientToDelete state variable, preventing multiple dialog instances from being mounted inside the DOM simultaneously.
  • The actions column header and cell are now sticky right-0 with PIN_SHADOW_RIGHT applied, keeping the actions visible during horizontal scroll.
  • The table container changed from overflow-hidden to overflow-auto to enable horizontal scrolling.
  • Reconnect and delete menu items are conditionally rendered based on RBAC access, rather than being rendered-but-disabled.
  • The MoreHorizontal button shows a Loader2 spinner while a reconnect is in progress for that row.
  • Added group class to table rows to allow the sticky actions cell to mirror the row hover background.

Type of change

  • Bug fix
  • Feature
  • Refactor
  • Documentation
  • Chore/CI

Affected areas

  • Core (Go)
  • Transports (HTTP)
  • Providers/Integrations
  • Plugins
  • UI (React)
  • Docs

How to test

  1. Navigate to the MCP Registry page in the workspace UI.
  2. Verify each MCP client row shows a (MoreHorizontal) button in the rightmost column.
  3. Click the button and confirm the dropdown shows Reconnect and Delete options (subject to RBAC permissions).
  4. Select Reconnect and confirm the spinner appears on the button while reconnecting.
  5. Select Delete and confirm the confirmation dialog appears with the correct server name, and that confirming removes the client.
  6. Resize the browser window to trigger horizontal scrolling and confirm the actions column remains pinned to the right.
cd ui
pnpm i || npm i
pnpm build || npm run build

Screenshots/Recordings

Before/after screenshots recommended showing the old inline icon buttons vs. the new dropdown menu.

Breaking changes

  • No

Related issues

Security considerations

RBAC checks are preserved — reconnect and delete menu items are only rendered when the user has the corresponding Update or Delete permission on MCPGateway.

Checklist

  • I read docs/contributing/README.md and followed the guidelines
  • I added/updated tests where appropriate
  • I updated documentation where needed
  • I verified builds succeed (Go and UI)
  • I verified the CI pipeline passes locally if applicable

@coderabbitai

coderabbitai Bot commented May 14, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@impoiler has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 2 minutes before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 83c0e4bb-297e-441f-84f2-7ee9252df7fc

📥 Commits

Reviewing files that changed from the base of the PR and between aeb12f4 and 1ec7297.

📒 Files selected for processing (1)
  • ui/app/workspace/mcp-registry/views/mcpClientsTable.tsx
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 05-14-chore_made_actions_sticky_on_the_workspace_mcp-registry_page

Comment @coderabbitai help to get the list of available commands and usage tips.

@impoiler impoiler changed the title chore: made actions sticky on the workspace/mcp-registry page feat: replace inline action buttons with dropdown menu and pin actions column in MCP clients table May 14, 2026
@impoiler impoiler self-assigned this May 14, 2026
@impoiler
impoiler marked this pull request as ready for review May 14, 2026 08:49
@greptile-apps

greptile-apps Bot commented May 14, 2026

Copy link
Copy Markdown
Contributor

Confidence Score: 4/5

The refactor is clean overall, but the Delete dropdown item calls e.preventDefault() on onSelect, which leaves the dropdown mounted and visible behind the AlertDialog overlay — it reappears once the dialog is dismissed.

The e.preventDefault() on the Delete DropdownMenuItem's onSelect is unnecessary (the AlertDialog is controlled externally by state) and causes the dropdown menu to reappear after the confirmation dialog closes, resulting in a visible UX defect on every delete attempt. The rest of the changes — sticky pinning, lifted AlertDialog, RBAC-gated items — are correct.

ui/app/workspace/mcp-registry/views/mcpClientsTable.tsx — specifically the Delete item's onSelect handler around line 355.

Important Files Changed

Filename Overview
ui/app/workspace/mcp-registry/views/mcpClientsTable.tsx Refactors per-row inline action buttons to a consolidated DropdownMenu with a lifted AlertDialog and a sticky actions column; e.preventDefault() on the Delete item's onSelect leaves the dropdown open behind the AlertDialog overlay so it reappears after dismissal.

Reviews (2): Last reviewed commit: "chore: made actions sticky on the worksp..." | Re-trigger Greptile

Comment thread ui/app/workspace/mcp-registry/views/mcpClientsTable.tsx
Comment thread ui/app/workspace/mcp-registry/views/mcpClientsTable.tsx
Comment thread ui/app/workspace/mcp-registry/views/mcpClientsTable.tsx
coderabbitai[bot]
coderabbitai Bot previously approved these changes May 14, 2026
@impoiler
impoiler force-pushed the 05-14-chore_made_actions_sticky_on_the_workspace_custom-pricing_overrides_page_and_sidebar_active_state_fix branch from 364c29a to aeb12f4 Compare May 14, 2026 10:12
@impoiler
impoiler force-pushed the 05-14-chore_made_actions_sticky_on_the_workspace_mcp-registry_page branch from aa85056 to 1ec7297 Compare May 14, 2026 10:12
Comment on lines +355 to +358
onSelect={(e) => {
e.preventDefault();
setClientToDelete(c);
}}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 Dropdown reappears after AlertDialog is dismissed

e.preventDefault() on the Delete item's onSelect suppresses Radix's auto-close of the DropdownMenu. Because the AlertDialog is lifted out of the row and controlled via clientToDelete state, preventDefault isn't needed — state-driven re-render opens the dialog independently. With preventDefault in place the dropdown stays open behind the AlertDialog overlay; once the user confirms or cancels, the overlay disappears and the dropdown reappears unexpectedly. Removing e.preventDefault() here (unlike on the Reconnect item) lets the menu close normally before the dialog opens.

@impoiler impoiler mentioned this pull request May 14, 2026
18 tasks

akshaydeo commented May 14, 2026

Copy link
Copy Markdown
Contributor

Merge activity

  • May 14, 10:19 AM UTC: A user started a stack merge that includes this pull request via Graphite.
  • May 14, 10:25 AM UTC: @akshaydeo merged this pull request with Graphite.

@akshaydeo
akshaydeo changed the base branch from 05-14-chore_made_actions_sticky_on_the_workspace_custom-pricing_overrides_page_and_sidebar_active_state_fix to graphite-base/3486 May 14, 2026 10:24
@akshaydeo
akshaydeo changed the base branch from graphite-base/3486 to dev May 14, 2026 10:24
@akshaydeo
akshaydeo dismissed coderabbitai[bot]’s stale review May 14, 2026 10:24

The base branch was changed.

@akshaydeo
akshaydeo merged commit 0a05c53 into dev May 14, 2026
13 checks passed
@akshaydeo
akshaydeo deleted the 05-14-chore_made_actions_sticky_on_the_workspace_mcp-registry_page branch May 14, 2026 10:25
akshaydeo pushed a commit that referenced this pull request May 14, 2026
…s column in MCP clients table (#3486)

## Summary

Replaces the per-row inline action buttons (reconnect + delete) in the MCP clients table with a consolidated `MoreHorizontal` dropdown menu, and moves the actions column to a sticky right-pinned position so it remains visible when the table scrolls horizontally.

## Changes

- Replaced the individual `Reconnect` (with tooltip) and `Delete` (with inline `AlertDialog`) buttons with a single `DropdownMenu` triggered by a `MoreHorizontal` icon button.
- The delete confirmation `AlertDialog` is now lifted out of the table row and controlled via a `clientToDelete` state variable, preventing multiple dialog instances from being mounted inside the DOM simultaneously.
- The actions column header and cell are now `sticky right-0` with `PIN_SHADOW_RIGHT` applied, keeping the actions visible during horizontal scroll.
- The table container changed from `overflow-hidden` to `overflow-auto` to enable horizontal scrolling.
- Reconnect and delete menu items are conditionally rendered based on RBAC access, rather than being rendered-but-disabled.
- The `MoreHorizontal` button shows a `Loader2` spinner while a reconnect is in progress for that row.
- Added `group` class to table rows to allow the sticky actions cell to mirror the row hover background.

## Type of change

- [ ] Bug fix
- [ ] Feature
- [x] Refactor
- [ ] Documentation
- [ ] Chore/CI

## Affected areas

- [ ] Core (Go)
- [ ] Transports (HTTP)
- [ ] Providers/Integrations
- [ ] Plugins
- [x] UI (React)
- [ ] Docs

## How to test

1. Navigate to the MCP Registry page in the workspace UI.
2. Verify each MCP client row shows a `⋯` (MoreHorizontal) button in the rightmost column.
3. Click the button and confirm the dropdown shows **Reconnect** and **Delete** options (subject to RBAC permissions).
4. Select **Reconnect** and confirm the spinner appears on the button while reconnecting.
5. Select **Delete** and confirm the confirmation dialog appears with the correct server name, and that confirming removes the client.
6. Resize the browser window to trigger horizontal scrolling and confirm the actions column remains pinned to the right.

```sh
cd ui
pnpm i || npm i
pnpm build || npm run build
```

## Screenshots/Recordings

Before/after screenshots recommended showing the old inline icon buttons vs. the new dropdown menu.

## Breaking changes

- [x] No

## Related issues

## Security considerations

RBAC checks are preserved — reconnect and delete menu items are only rendered when the user has the corresponding `Update` or `Delete` permission on `MCPGateway`.

## Checklist

- [ ] I read `docs/contributing/README.md` and followed the guidelines
- [ ] I added/updated tests where appropriate
- [ ] I updated documentation where needed
- [ ] I verified builds succeed (Go and UI)
- [ ] I verified the CI pipeline passes locally if applicable
akshaydeo pushed a commit that referenced this pull request May 15, 2026
…s column in MCP clients table (#3486)

## Summary

Replaces the per-row inline action buttons (reconnect + delete) in the MCP clients table with a consolidated `MoreHorizontal` dropdown menu, and moves the actions column to a sticky right-pinned position so it remains visible when the table scrolls horizontally.

## Changes

- Replaced the individual `Reconnect` (with tooltip) and `Delete` (with inline `AlertDialog`) buttons with a single `DropdownMenu` triggered by a `MoreHorizontal` icon button.
- The delete confirmation `AlertDialog` is now lifted out of the table row and controlled via a `clientToDelete` state variable, preventing multiple dialog instances from being mounted inside the DOM simultaneously.
- The actions column header and cell are now `sticky right-0` with `PIN_SHADOW_RIGHT` applied, keeping the actions visible during horizontal scroll.
- The table container changed from `overflow-hidden` to `overflow-auto` to enable horizontal scrolling.
- Reconnect and delete menu items are conditionally rendered based on RBAC access, rather than being rendered-but-disabled.
- The `MoreHorizontal` button shows a `Loader2` spinner while a reconnect is in progress for that row.
- Added `group` class to table rows to allow the sticky actions cell to mirror the row hover background.

## Type of change

- [ ] Bug fix
- [ ] Feature
- [x] Refactor
- [ ] Documentation
- [ ] Chore/CI

## Affected areas

- [ ] Core (Go)
- [ ] Transports (HTTP)
- [ ] Providers/Integrations
- [ ] Plugins
- [x] UI (React)
- [ ] Docs

## How to test

1. Navigate to the MCP Registry page in the workspace UI.
2. Verify each MCP client row shows a `⋯` (MoreHorizontal) button in the rightmost column.
3. Click the button and confirm the dropdown shows **Reconnect** and **Delete** options (subject to RBAC permissions).
4. Select **Reconnect** and confirm the spinner appears on the button while reconnecting.
5. Select **Delete** and confirm the confirmation dialog appears with the correct server name, and that confirming removes the client.
6. Resize the browser window to trigger horizontal scrolling and confirm the actions column remains pinned to the right.

```sh
cd ui
pnpm i || npm i
pnpm build || npm run build
```

## Screenshots/Recordings

Before/after screenshots recommended showing the old inline icon buttons vs. the new dropdown menu.

## Breaking changes

- [x] No

## Related issues

## Security considerations

RBAC checks are preserved — reconnect and delete menu items are only rendered when the user has the corresponding `Update` or `Delete` permission on `MCPGateway`.

## Checklist

- [ ] I read `docs/contributing/README.md` and followed the guidelines
- [ ] I added/updated tests where appropriate
- [ ] I updated documentation where needed
- [ ] I verified builds succeed (Go and UI)
- [ ] I verified the CI pipeline passes locally if applicable
akshaydeo pushed a commit that referenced this pull request May 15, 2026
…s column in MCP clients table (#3486)

## Summary

Replaces the per-row inline action buttons (reconnect + delete) in the MCP clients table with a consolidated `MoreHorizontal` dropdown menu, and moves the actions column to a sticky right-pinned position so it remains visible when the table scrolls horizontally.

## Changes

- Replaced the individual `Reconnect` (with tooltip) and `Delete` (with inline `AlertDialog`) buttons with a single `DropdownMenu` triggered by a `MoreHorizontal` icon button.
- The delete confirmation `AlertDialog` is now lifted out of the table row and controlled via a `clientToDelete` state variable, preventing multiple dialog instances from being mounted inside the DOM simultaneously.
- The actions column header and cell are now `sticky right-0` with `PIN_SHADOW_RIGHT` applied, keeping the actions visible during horizontal scroll.
- The table container changed from `overflow-hidden` to `overflow-auto` to enable horizontal scrolling.
- Reconnect and delete menu items are conditionally rendered based on RBAC access, rather than being rendered-but-disabled.
- The `MoreHorizontal` button shows a `Loader2` spinner while a reconnect is in progress for that row.
- Added `group` class to table rows to allow the sticky actions cell to mirror the row hover background.

## Type of change

- [ ] Bug fix
- [ ] Feature
- [x] Refactor
- [ ] Documentation
- [ ] Chore/CI

## Affected areas

- [ ] Core (Go)
- [ ] Transports (HTTP)
- [ ] Providers/Integrations
- [ ] Plugins
- [x] UI (React)
- [ ] Docs

## How to test

1. Navigate to the MCP Registry page in the workspace UI.
2. Verify each MCP client row shows a `⋯` (MoreHorizontal) button in the rightmost column.
3. Click the button and confirm the dropdown shows **Reconnect** and **Delete** options (subject to RBAC permissions).
4. Select **Reconnect** and confirm the spinner appears on the button while reconnecting.
5. Select **Delete** and confirm the confirmation dialog appears with the correct server name, and that confirming removes the client.
6. Resize the browser window to trigger horizontal scrolling and confirm the actions column remains pinned to the right.

```sh
cd ui
pnpm i || npm i
pnpm build || npm run build
```

## Screenshots/Recordings

Before/after screenshots recommended showing the old inline icon buttons vs. the new dropdown menu.

## Breaking changes

- [x] No

## Related issues

## Security considerations

RBAC checks are preserved — reconnect and delete menu items are only rendered when the user has the corresponding `Update` or `Delete` permission on `MCPGateway`.

## Checklist

- [ ] I read `docs/contributing/README.md` and followed the guidelines
- [ ] I added/updated tests where appropriate
- [ ] I updated documentation where needed
- [ ] I verified builds succeed (Go and UI)
- [ ] I verified the CI pipeline passes locally if applicable
akshaydeo pushed a commit that referenced this pull request May 20, 2026
…s column in MCP clients table (#3486)

## Summary

Replaces the per-row inline action buttons (reconnect + delete) in the MCP clients table with a consolidated `MoreHorizontal` dropdown menu, and moves the actions column to a sticky right-pinned position so it remains visible when the table scrolls horizontally.

## Changes

- Replaced the individual `Reconnect` (with tooltip) and `Delete` (with inline `AlertDialog`) buttons with a single `DropdownMenu` triggered by a `MoreHorizontal` icon button.
- The delete confirmation `AlertDialog` is now lifted out of the table row and controlled via a `clientToDelete` state variable, preventing multiple dialog instances from being mounted inside the DOM simultaneously.
- The actions column header and cell are now `sticky right-0` with `PIN_SHADOW_RIGHT` applied, keeping the actions visible during horizontal scroll.
- The table container changed from `overflow-hidden` to `overflow-auto` to enable horizontal scrolling.
- Reconnect and delete menu items are conditionally rendered based on RBAC access, rather than being rendered-but-disabled.
- The `MoreHorizontal` button shows a `Loader2` spinner while a reconnect is in progress for that row.
- Added `group` class to table rows to allow the sticky actions cell to mirror the row hover background.

## Type of change

- [ ] Bug fix
- [ ] Feature
- [x] Refactor
- [ ] Documentation
- [ ] Chore/CI

## Affected areas

- [ ] Core (Go)
- [ ] Transports (HTTP)
- [ ] Providers/Integrations
- [ ] Plugins
- [x] UI (React)
- [ ] Docs

## How to test

1. Navigate to the MCP Registry page in the workspace UI.
2. Verify each MCP client row shows a `⋯` (MoreHorizontal) button in the rightmost column.
3. Click the button and confirm the dropdown shows **Reconnect** and **Delete** options (subject to RBAC permissions).
4. Select **Reconnect** and confirm the spinner appears on the button while reconnecting.
5. Select **Delete** and confirm the confirmation dialog appears with the correct server name, and that confirming removes the client.
6. Resize the browser window to trigger horizontal scrolling and confirm the actions column remains pinned to the right.

```sh
cd ui
pnpm i || npm i
pnpm build || npm run build
```

## Screenshots/Recordings

Before/after screenshots recommended showing the old inline icon buttons vs. the new dropdown menu.

## Breaking changes

- [x] No

## Related issues

## Security considerations

RBAC checks are preserved — reconnect and delete menu items are only rendered when the user has the corresponding `Update` or `Delete` permission on `MCPGateway`.

## Checklist

- [ ] I read `docs/contributing/README.md` and followed the guidelines
- [ ] I added/updated tests where appropriate
- [ ] I updated documentation where needed
- [ ] I verified builds succeed (Go and UI)
- [ ] I verified the CI pipeline passes locally if applicable
@akshaydeo akshaydeo mentioned this pull request May 20, 2026
akhsaul pushed a commit to akhsaul/bifrost that referenced this pull request Aug 27, 2026
…s column in MCP clients table (maximhq#3486)

## Summary

Replaces the per-row inline action buttons (reconnect + delete) in the MCP clients table with a consolidated `MoreHorizontal` dropdown menu, and moves the actions column to a sticky right-pinned position so it remains visible when the table scrolls horizontally.

## Changes

- Replaced the individual `Reconnect` (with tooltip) and `Delete` (with inline `AlertDialog`) buttons with a single `DropdownMenu` triggered by a `MoreHorizontal` icon button.
- The delete confirmation `AlertDialog` is now lifted out of the table row and controlled via a `clientToDelete` state variable, preventing multiple dialog instances from being mounted inside the DOM simultaneously.
- The actions column header and cell are now `sticky right-0` with `PIN_SHADOW_RIGHT` applied, keeping the actions visible during horizontal scroll.
- The table container changed from `overflow-hidden` to `overflow-auto` to enable horizontal scrolling.
- Reconnect and delete menu items are conditionally rendered based on RBAC access, rather than being rendered-but-disabled.
- The `MoreHorizontal` button shows a `Loader2` spinner while a reconnect is in progress for that row.
- Added `group` class to table rows to allow the sticky actions cell to mirror the row hover background.

## Type of change

- [ ] Bug fix
- [ ] Feature
- [x] Refactor
- [ ] Documentation
- [ ] Chore/CI

## Affected areas

- [ ] Core (Go)
- [ ] Transports (HTTP)
- [ ] Providers/Integrations
- [ ] Plugins
- [x] UI (React)
- [ ] Docs

## How to test

1. Navigate to the MCP Registry page in the workspace UI.
2. Verify each MCP client row shows a `⋯` (MoreHorizontal) button in the rightmost column.
3. Click the button and confirm the dropdown shows **Reconnect** and **Delete** options (subject to RBAC permissions).
4. Select **Reconnect** and confirm the spinner appears on the button while reconnecting.
5. Select **Delete** and confirm the confirmation dialog appears with the correct server name, and that confirming removes the client.
6. Resize the browser window to trigger horizontal scrolling and confirm the actions column remains pinned to the right.

```sh
cd ui
pnpm i || npm i
pnpm build || npm run build
```

## Screenshots/Recordings

Before/after screenshots recommended showing the old inline icon buttons vs. the new dropdown menu.

## Breaking changes

- [x] No

## Related issues

## Security considerations

RBAC checks are preserved — reconnect and delete menu items are only rendered when the user has the corresponding `Update` or `Delete` permission on `MCPGateway`.

## Checklist

- [ ] I read `docs/contributing/README.md` and followed the guidelines
- [ ] I added/updated tests where appropriate
- [ ] I updated documentation where needed
- [ ] I verified builds succeed (Go and UI)
- [ ] I verified the CI pipeline passes locally if applicable
occcat pushed a commit to occcat/bifrost that referenced this pull request Sep 2, 2026
…s column in MCP clients table (maximhq#3486)

## Summary

Replaces the per-row inline action buttons (reconnect + delete) in the MCP clients table with a consolidated `MoreHorizontal` dropdown menu, and moves the actions column to a sticky right-pinned position so it remains visible when the table scrolls horizontally.

## Changes

- Replaced the individual `Reconnect` (with tooltip) and `Delete` (with inline `AlertDialog`) buttons with a single `DropdownMenu` triggered by a `MoreHorizontal` icon button.
- The delete confirmation `AlertDialog` is now lifted out of the table row and controlled via a `clientToDelete` state variable, preventing multiple dialog instances from being mounted inside the DOM simultaneously.
- The actions column header and cell are now `sticky right-0` with `PIN_SHADOW_RIGHT` applied, keeping the actions visible during horizontal scroll.
- The table container changed from `overflow-hidden` to `overflow-auto` to enable horizontal scrolling.
- Reconnect and delete menu items are conditionally rendered based on RBAC access, rather than being rendered-but-disabled.
- The `MoreHorizontal` button shows a `Loader2` spinner while a reconnect is in progress for that row.
- Added `group` class to table rows to allow the sticky actions cell to mirror the row hover background.

## Type of change

- [ ] Bug fix
- [ ] Feature
- [x] Refactor
- [ ] Documentation
- [ ] Chore/CI

## Affected areas

- [ ] Core (Go)
- [ ] Transports (HTTP)
- [ ] Providers/Integrations
- [ ] Plugins
- [x] UI (React)
- [ ] Docs

## How to test

1. Navigate to the MCP Registry page in the workspace UI.
2. Verify each MCP client row shows a `⋯` (MoreHorizontal) button in the rightmost column.
3. Click the button and confirm the dropdown shows **Reconnect** and **Delete** options (subject to RBAC permissions).
4. Select **Reconnect** and confirm the spinner appears on the button while reconnecting.
5. Select **Delete** and confirm the confirmation dialog appears with the correct server name, and that confirming removes the client.
6. Resize the browser window to trigger horizontal scrolling and confirm the actions column remains pinned to the right.

```sh
cd ui
pnpm i || npm i
pnpm build || npm run build
```

## Screenshots/Recordings

Before/after screenshots recommended showing the old inline icon buttons vs. the new dropdown menu.

## Breaking changes

- [x] No

## Related issues

## Security considerations

RBAC checks are preserved — reconnect and delete menu items are only rendered when the user has the corresponding `Update` or `Delete` permission on `MCPGateway`.

## Checklist

- [ ] I read `docs/contributing/README.md` and followed the guidelines
- [ ] I added/updated tests where appropriate
- [ ] I updated documentation where needed
- [ ] I verified builds succeed (Go and UI)
- [ ] I verified the CI pipeline passes locally if applicable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants