Introduction

When handling Git repositories in DSH Web, common operations go beyond chatting: you also need to switch branches, view commit graphs, review diffs, and hand current changes to an Agent for analysis. dsh-git-panel puts these Git operations into a panel on the right side of the Web GUI, reducing switching between terminals, browsers, and chat windows.

Below is an introduction to its positioning, core features, installation method, and typical usage.

What is this

dsh-git-panel is a Git panel plugin for the DSH Web GUI. It provides branch management: switching, pulling, fetching, renaming, deleting, merging, and a GitLens-style commit graph.

The repository owner provided in the documentation is a792883583; the author field in package.json is Jaden Tang <jaden.tang@sjfood.com>. The license is MIT.

Core Features

Branch Panel

The branch panel appears on the right side of the chat area. It displays local and remote branches, highlights the current branch, and shows the ahead/behind relative to the upstream.

The top of the branch list has a real-time search to filter by branch name or commit message quickly.

Common operations include:

  • Double-click a local branch to switch branches; double-click the current branch to pull.
  • Double-click a remote branch to checkout, automatically creating a local tracking branch.
  • Right-click a branch to copy the branch name, rename, delete, or merge into the current branch; for a remote branch, it is to delete the remote branch.
  • One-click pull for the current branch.
  • One-click fetch all, corresponding command:
git fetch --all --prune

Branch Capsule

Above the input box is a branch capsule showing the current branch; clicking it expands the local branch list for quick switching.

Commit Graph

The commit graph uses a GitLens-style commit DAG swimlane chart with three-column headers and resizable column widths; rendering uses virtualization, drawing only the visible area.

Clicking a commit node allows you to view commit details and perform:

  • Cherry-pick to the current branch
  • Revert this commit, corresponding command:
git revert --no-edit

Write Operations Bar

The write operations bar supports the following operations:

  • Commit: Press Enter after entering a commit message to execute:
git add -A && git commit -m
  • Push: One-click push of the current branch, corresponding command:
git push
  • Stash: git stash push with an optional description.

  • Pop Stash: git stash pop

  • Status: Displays the number of changed files in the working directory.

Changed Files and Diff

The panel lists uncommitted changed files; clicking a file views the inline colored Diff against HEAD, facilitating review of changes before commit.

It also supports bringing the list of changes or a single file Diff into the chat input box with one click, making it convenient to let an Agent analyze current modifications or differences.

Language, Theme, and Working Directory

  • Automatically follows the DSH Web interface language, defaulting to Simplified Chinese.
  • Light and dark themes follow the DSH Web GUI.
  • Follows the current session working directory; automatically rebinds when switching project sessions.

Installation and Enablement

First, install the plugin:

dsh plugin --profile web add dsh-git-panel

Then restart dsh web and open a project session bound to a Git repository. The “Git Panel” will appear on the right side of the chat area.

For local development, you can install via a link:

dsh plugin --profile web add link:/path/to/dsh-git-panel

After modifying the source code, build and refresh the page:

npm run build

Typical Usage

Below are reproducible operations listed according to common workflows:

  1. Enter the project session bound to a Git repository and check the branch panel on the right.
  2. Double-click a local branch to switch branches; if the current branch needs a pull, double-click the current branch.
  3. When creating a new local tracking branch, double-click a remote branch.
  4. Before committing, click on changed files to view the Diff against HEAD.
  5. Input a commit message in the commit bar and press Enter to commit.
  6. Push the current branch.
  7. When saving changes temporarily, use stash; when retrieving them, pop stash.
  8. Click on a commit node in the graph to cherry-pick or revert the commit.
  9. When an Agent analysis is needed, bring the list of changes or a single Diff into the chat input box.

Applicable Scenarios and Notes

Suitable for developers who handle Git repositories in DSH Web and need to manage branches, commits, diffs, and session context within the same interface.

Notes before use:

  • After installation, you must restart dsh web and use it in a project session bound to a Git repository.
  • The documentation does not provide information on star count, permission boundaries, network call scope, or other extra limitations.
  • The plugin runs with the permissions of the current dsh process; you should check the source code and license before installing.
  • The license is MIT.
  • package.json declares dsh client platform as web, requiring the injection of @deepseek-ai/dsh-client-runtime and @deepseek-ai/dsh-client-locale.
  • package.json peerDependencies require @deepseek-ai/dsh-* in >=0.1.0-rc.6 <0.3.0 and React in >=16.8.0 <20.0.0.

Links

  • GitHub: https://github.com/a792883583/dsh-git-panel
  • Directory page: Verified documentation does not provide a directory page URL.