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.
- 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.
- 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.
- Install dependencies and restart.
pnpm install
Then restart dsh web.
- 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:
- The file appears in the Staged, Changed, or Untracked group.
- Click the file row to view
+/−line counts and diff. - If it is an untracked file, view the content directly.
- If the file was renamed, view
Old -> New. - 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.reposare 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 webneeds 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.