Introduction

When using the DSH Web GUI to process workspace files, it is often necessary to check what uncommitted changes exist in the repository of the current conversation. dsh-git-sidebar addresses the operational cost of such tasks: it places Git workspace changes on the right side of the DSH conversation page, allowing you to view staged, unstaged, untracked files, status, line counts, and single-file diffs without leaving the current session interface.

Plugin Positioning

dsh-git-sidebar is an embedded Git workspace changes sidebar plugin for the DeepSeek Harness (DSH) Web GUI, maintained by H2O-MERO, and released under the MIT License.

It targets the DSH conversation page, docking a VSCode-style uncommitted changes panel on the right side to view the status of the git repository within the current conversation workspace.

Core Capabilities

Follow Current Conversation

  • Displays the git repository of the conversation workspace corresponding to the open conversation.
  • Automatically follows when switching conversations.
  • Conversations in non-git repositories display an empty state hint.
  • Automatically switches between light and dark themes following the Harness interface.

View Uncommitted Changes

  • The file list is divided into three groups: Staged, Changed, and Untracked.
  • File rows are accompanied by status badges: A, M, D, R, U, ?.
  • Each row displays +/− line counts.
  • Clicking a row expands the single-file diff.
  • Renamed files are displayed as Old -> New.
  • Untracked files display content directly.

Panel Control

  • Individual file groups can be hidden.
  • Both the panel and groups can be collapsed by clicking.
  • Width can be adjusted by dragging.
  • Width and collapse state are persisted.
  • When collapsed, only a narrow handle is shown; content is not rendered and no requests are initiated.
  • Automatically yields space when the host tool’s details panel is opened.

Open File

After expanding a file row, the system default application can be invoked to open the file.

Installation and Enablement

Installation requires adding the plugin to the DSH web profile and restarting dsh web.

  1. Add the plugin to the profile’s dependencies.

Edit the package.json of the DSH web profile and add it in dependencies:

{
  "dependencies": {
    "dsh-git-sidebar": "file:./plugins/git-sidebar"
  }
}

plugins/git-sidebar is the directory where the plugin source code resides; adjust according to the actual path.

  1. Mount the bundle.

Add the following to the profile’s cordis.patch.yml:

- insert:
    - id: git-sidebar
      name: dsh-git-sidebar
      config:
        repo: "C:/path/to/your/repo"

config.repo and config.repos are the initial whitelist of accessible repositories. Repositories discovered by the conversation workspace during runtime will also be automatically added to the accessible set.

  1. Install dependencies and restart.
pnpm install

Then restart dsh web.

  1. Verification.

Open http://127.0.0.1:3080, enter any conversation page, and the “Uncommitted Changes” sidebar should be visible on the right.

Typical Usage

First, open a DSH conversation bound to a git workspace. After modifying files, view the status in the right sidebar:

  1. The file appears in the Staged, Changed, or Untracked group.
  2. Click the file row to view +/− line counts and diff.
  3. If it is an untracked file, view the content directly.
  4. If the file was renamed, view Old -> New.
  5. When needing to open a file, expand the file row and invoke the system default application.

After switching conversations, the sidebar follows the new conversation workspace to display the corresponding git repository; if it is not a git repository, it displays an empty state hint.

Use Cases and Notes

Suitable for these scenarios:

  • Processing workspace files on the DSH conversation page without frequently switching to a terminal or IDE.
  • Needing to quickly confirm the status of untracked, staged, and modified files.
  • Needing to view single-file diffs and open files within the current conversation interface.
  • Hoping the sidebar width and collapse state remain stable without interrupting the current viewing rhythm.

Notes:

  • config.repo / config.repos are the initial whitelist, not equal to the runtime unique accessible repository; repositories discovered by the conversation workspace will also be added.
  • Conversations in non-git repositories will only see an empty state hint.
  • After server-side and client-side changes, dsh web needs to be restarted.
  • Opening files invokes the system default application; specific behavior depends on local system settings.
  • The plugin runs with the permissions of the current DSH process; please check the source code and MIT License before installing.

Links

  • GitHub: https://github.com/H2O-MERO/dsh-git-sidebar
  • The directory page URL was not provided in the verified sources.