When working with remote mirror workspaces in DeepSeek Harness (DSH), it is important to distinguish whether the current session is a local connection or a connection to a remote machine. If the workspace title remains unchanged and the context changes implicitly only by switching directories, this can easily cause confusion during multi-session switching or troubleshooting. Below is an introduction to a UI indicator plugin that addresses this issue.

Plugin Introduction

dsh-remote-status is a DeepSeek Harness plugin located at the bottom of the sidebar. It uses a status chip to display whether the current session is “Local” or “Remote · machine name,” and supports hovering to view detailed diagnostic information.

  • Maintainer: HandsYe
  • License: MIT
  • Core positioning: Pure UI indicator; does not modify workspace titles or data, only provides status visualization.

Core Features

1. Status Chip Display

The plugin provides a status indicator at the bottom of the sidebar, displaying different styles based on the current session type:
* Local session: Displayed as ◉ Local, using a green dot.
* Remote session: Displayed as ⇄ Remote · machine name, using an orange dot (the collapsed state is the ⇄ icon).

2. Hover Diagnostic Information

Hovering the mouse over the status chip displays detailed information for the current session:
* Local session: No remote machine information is displayed.
* Remote session: Displays session mode, connected machine, last refresh time, recent error information, etc.

3. Responsiveness and Fault Tolerance

  • Second-level response: Uses event subscription (150ms debounce) plus a 1s polling fallback mechanism; after switching directories, the status updates immediately.
  • Correctly follows the selection: Based on DSH 2.0.15’s retainedBy.mainView and layout.panelInfo to confirm the currently displayed session instead of taking the first item in the list, avoiding misjudgment.
  • Graceful degradation: If an API call fails, the same session retains the known state and displays ⚠; if a failure occurs after switching sessions, display “status pending confirmation”; when no session is selected, explicitly display “no session selected”.

Data Sources and Dependencies

Dependencies

The plugin depends on the following host modules. Ensure the environment already includes them before installation:
* @deepseek-ai/dsh-host-webserver
* @deepseek-ai/dsh-client-ui-renderer

Data Reading

This plugin does not register any tools and acts only as a UI layer that reads shared data sources. It relies on data created by the dsh-remote ecosystem or compatible plugins:
* $DSH_HOME/remote-workspaces/machines.json: machine registry, including currentId, and machine name/host.
* $DSH_HOME/remote-workspaces/<host-dir>/<name>/.dsh-remote-meta.json: mirror path and machine identity (remotePath, host, username, port).

Built-in Host Routes

The plugin ships with built-in host routes (/dsh-remote-status/status|machines|resolve-mirror), implementing dual-channel communication between Web and desktop IPC. This means that without depending on the dsh-remote plugin itself, it can also work independently as host-side logic, provided that data sources are available to supply mirror and machine information.

Typical Usage

  1. Confirm connection status: View the status chip at the bottom of the sidebar to quickly determine whether the current operation is on the local machine or a remote server.
  2. View diagnostic information: Hover over the chip to inspect session mode, connected machine, and recent error logs.
  3. Verify directory switching: Switch directories within a remote mirror workspace and observe whether the chip status updates to the corresponding machine name within 1 second.

Notes

  • Restart required: After upgrading the plugin code, DSH Desktop must be restarted to load the new logic.
  • Permissions and source code: The plugin runs with the current DSH process permissions. It is recommended to review the source code and license (MIT) before installation.