Skip to content

Add Actions dropdown menu to ShellV2 header#2253

Merged
KCarretto merged 10 commits intomainfrom
copilot/add-drop-down-menu-ui
Apr 17, 2026
Merged

Add Actions dropdown menu to ShellV2 header#2253
KCarretto merged 10 commits intomainfrom
copilot/add-drop-down-menu-ui

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 17, 2026

  • Backend: Close ShellPivots when portal closes in createPortal gRPC cleanup (api_create_portal.go)
  • ShellHeader reorder: Move bug nub after active user icons, add NotificationBell between bug nub and ellipsis menu
  • Disconnected indicator: Add WifiOff icon to portal tabs whose SSH/PTY connections have disconnected
    • Add onConnectionStatusChange callback prop to SshTerminal and PtyTerminal
    • Track per-tab disconnection state in ShellV2 index
    • Show WifiOff icon with "Disconnected" tooltip on disconnected portal tabs
  • Build frontend — compiles cleanly

Copilot AI and others added 2 commits April 17, 2026 01:50
…ptions

- Create ShellActionsMenu component with Headless UI Menu dropdown
- Create SshConnectionModal for SSH target parameter input
- Move Export button from ShellHeader into the dropdown menu
- Add New Portal option that sets shell input to pivot.create_portal()
- Add SSH option (opens modal) and PTY option, disabled when no portal active
- Disabled items show tooltip explaining portal requirement on hover
- Add setShellInput callback to useShellTerminal for programmatic input
- Update ShellHeader tests for new props and menu interaction

Agent-Logs-Url: https://github.com/spellshift/realm/sessions/42859a04-b2a3-4b27-9b5f-a9b0f817184d

Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
…Click handlers

Agent-Logs-Url: https://github.com/spellshift/realm/sessions/42859a04-b2a3-4b27-9b5f-a9b0f817184d

Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
… Portal when active, update SSH placeholder

- Replace "Actions" button with Ellipsis icon from lucide-react
- Move ShellActionsMenu after active users display (rightmost in header)
- Dropdown now opens aligned to the right
- Disable "New Portal" when a portal is already active, with tooltip
- Update SSH target placeholder to "user:password@host:port"
- Fix test to use aria-label selector for the new icon button

Agent-Logs-Url: https://github.com/spellshift/realm/sessions/8e141a31-b1f8-445c-a0f5-a5f7b32ea8b3

Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
…as space to grow

- Replace Button wrapper on menu trigger with plain button element
- Ellipsis icon is now white text, with subtle hover background
- Active users section uses min-w-0 and overflow-x-auto to grow
- ShellActionsMenu wrapped in flex-shrink-0 so it stays rightmost

Agent-Logs-Url: https://github.com/spellshift/realm/sessions/0fb22aed-bebc-4524-8b55-5af194b9bfdd

Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
… on tab switch

- When portal is active, show "Close Portal" (red, X icon) calling closePortal
  GraphQL mutation instead of a disabled "New Portal" button
- When no portal, show "New Portal" as before
- Add ResizeObserver to REPL terminal so it properly resizes when switching
  back from PTY/SSH tabs (matching PtyTerminal's existing approach)

Agent-Logs-Url: https://github.com/spellshift/realm/sessions/6315146a-f09f-4e37-a5ff-79275a2fcf17

Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
HeadlessUI Menu restores focus to Menu.Button after item click,
overriding the term.focus() in setShellInput. Added a focusTerminal
helper and setTimeout(0) in handleNewPortal to refocus after the
menu's focus restoration completes.

Agent-Logs-Url: https://github.com/spellshift/realm/sessions/050a6291-7219-4358-b85b-8a1d4d0109a2

Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
When a portal closes, sendPortalClose now queries all open ShellPivots
associated with the portal, marks them as closed in the DB, and sends
a stream-specific CLOSE mote for each pivot so SSH/PTY sessions receive
the shutdown signal before sending the portal-level CLOSE mote.

Agent-Logs-Url: https://github.com/spellshift/realm/sessions/af07f1fd-9019-41f3-a6ec-ad3cd74f8173

Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
Copilot AI and others added 2 commits April 17, 2026 03:17
…hell header

Move bug nub after active user icons and add NotificationBell between
bug nub and ellipsis menu. Add WifiOff icon to portal tabs whose
SSH/PTY connections have disconnected.

Agent-Logs-Url: https://github.com/spellshift/realm/sessions/066f875f-0522-4de9-88c0-b1367e1e67f6

Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
@KCarretto KCarretto marked this pull request as ready for review April 17, 2026 03:46
@KCarretto KCarretto merged commit c3f7b5b into main Apr 17, 2026
6 of 8 checks passed
@KCarretto KCarretto deleted the copilot/add-drop-down-menu-ui branch April 17, 2026 03:46
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