Add per-tab remote indicator and Disconnect SSH tab context action

LA
4mo ago
+119-8

Adds the bonsplit half of cmux pane-scoped SSH connections (cmux ssh --pane):

  • Tab/TabItem gain showsRemoteIndicator, rendered as a small network glyph after the tab title with accessibility text (localized en/ja).
  • BonsplitController.updateTab/createTab/splitPane carry the new field.
  • New TabContextAction.disconnectRemote context menu item ("Disconnect SSH", localized en/ja), shown only when the host's tabContextDisconnectRemoteAvailabilityProvider returns true.

Includes unit tests for the indicator field plumbing and context action availability.

Consumed by the cmux PR for pane-scoped SSH connections (link added there).


View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.


Summary by cubic

Adds a per-tab remote connection indicator and a “Disconnect SSH” context action to support pane-scoped SSH sessions. This clarifies which tabs are remote and gives users a quick way to disconnect when the host allows it.

  • New Features

    • New showsRemoteIndicator on tabs; renders a small network glyph after the title with accessible text (en/ja).
    • BonsplitController.createTab, updateTab, and splitPane accept and propagate showsRemoteIndicator.
    • New TabContextAction.disconnectRemote; visibility controlled by host via tabContextDisconnectRemoteAvailabilityProvider.
    • Unit tests for indicator plumbing and context menu availability.
  • Migration

    • Pass showsRemoteIndicator when creating or updating tabs that are connected remotely.
    • Provide tabContextDisconnectRemoteAvailabilityProvider and handle the .disconnectRemote action to enable the menu item.

Summary by CodeRabbit

  • New Features
    • Tabs can now display a remote SSH connection indicator icon when connected.
    • Tab context menu includes a new "Disconnect SSH" action when applicable.
    • Accessibility support added for remote connection status labels.
    • Japanese localization added for SSH-related menu items and labels.