dsh-git-graph
Manifest validGit history and working-tree diff graph for the DeepSeek Harness web sidebar.
dsh-git-graph
A Git graph in the right sidebar of DSH Web. Browse commits, branches, tags and stashes, inspect staged/unstaged changes and diffs, compare revisions, and perform selected Git actions through confirmation dialogs. Changes to the Git directory update the view automatically while it is open.
Install
Install the tagged GitHub release into your DSH Web profile:
dsh plugin --profile web add 'https://github.com/yoggu/dsh-git-graph.git#v0.1.3'
Or download the source and link the local checkout. The browser bundle (client.js) is already included; no build is needed to install it:
git clone --branch v0.1.3 --depth 1 https://github.com/yoggu/dsh-git-graph.git
cd dsh-git-graph
npm install --omit=dev --ignore-scripts
dsh plugin --profile web add "link:$(pwd)"
Keep a linked checkout in place while the plugin is installed. Use the profile you actually run if it is not web.
Restart DSH Web if necessary, reload the page, then select Git graph from the right sidebar's tab menu. No API key is required. The installed package includes the built browser bundle (client.js).
To uninstall: dsh plugin --profile web remove dsh-git-graph.
Selecting a repository
The Git panel initially lists only registered DSH workspace folders, with the current workspace first. Select a workspace's Git repository directly, or use the arrow beside a folder to load its immediate subfolders. Expand further folders one level at a time to reach nested repositories, worktrees or initialized submodules. There is no recursive background scan. You can inspect another workspace without creating a session there; search filters folders already loaded rather than starting a deeper scan.
Selection changes only the Git panel: Files, terminal, the active DSH workspace and the session directory stay unchanged. Diff and comparison tabs retain the repository they were opened from. The active repository is named above the graph and in action confirmations. Selection is remembered per session in plugin memory, not across a browser reload.
Folder browsing skips dependency directories and child symlinks. Child folders are read only when you expand their parent, and loaded levels are reused when you collapse and reopen them. Use the refresh button to reload workspace roots and open branches. The picker has no partial-scan notices; actual folder errors have an inline retry. Separate worktrees remain selectable. Bare repositories are not supported.
Git actions and security
The plugin reads the explicitly selected repository, defaulting to the repository containing the current DSH session when available. Writing actions (for example commit, checkout, reset, stash, push and pull) are initiated by a user and presented for confirmation; Fetch reads from configured remotes without a confirmation. Destructive actions can discard work. Push uses --force-with-lease when force is requested.
Git reads repository-local configuration even for ordinary status calls; settings such as core.fsmonitor, hooks or filters may execute programs. Fetch, push and pull also use configured transports and can contact external hosts. Do not open or operate the graph on repositories with untrusted Git configuration. Access to this plugin's authenticated API effectively grants Git control over repositories in all registered DSH workspaces, the session directory and its children, and the repository containing that session. Explicit targets are validated against these roots; deleting a workspace registration invalidates its targets rather than falling back to another repository. Diff contents are rendered as escaped text; syntax highlighting is bundled locally, not loaded from a CDN. See THIRD_PARTY_NOTICES.md for included licenses.
Development and tests
npm ci
npm run build # regenerate client.js after changing src/client/
npm test
npm run test:browser # optional: requires Chromium
The normal tests create temporary Git repositories; the browser suite uses a disposable headless browser. npm run check:build checks whether the tracked browser bundle matches its source.
License
MIT; see LICENSE.
Comments
Loading…
From the same category
by awesome-dsh-plugin
A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表
★ 17.7k
CC0-1.0
Python
Oct 1, 2026
by 0xsline
DeepSeek Harness (DSH) ecosystem: curated plugins, tools, and infrastructure from dsh-external/hub and the public dsh-plugin topic.
★ 1.1k
CC0-1.0
Python
Sep 30, 2026
by pax-beehive
Open-source CLI, schemas, resolver, and DSH agent tools for DSH Plugin Hub
★ 458
MIT
TypeScript
Sep 22, 2026
by yjh051108
推荐组件(非必须):DeepSeek Harness 运行时注入器;已随 dsh-routing-suite 单仓库化保留,本仓库继续维护/发布。
★ 167
TypeScript
Sep 18, 2026
dsh plugin --profile web add @dsh-external/dsh-super-injectorby xiajiajun516
DeepSeek Harness (DSH) backup & restore plugin — export, import, migrate and sync your complete DSH configuration, plugins, MCP servers, skills and workspace. One-click migration to another machine.
★ 148
MIT
TypeScript
Sep 30, 2026
dsh plugin --profile web add dsh-config-managerby jigjoy-ai
A CLI that turns a goal into a pull request - and a sandbox for testing concurrent AI coding agents on the Mozaik runtime.
★ 124
MIT
TypeScript
Oct 2, 2026