- ホーム
- プラグイン
- Git とコードレビュー
- dsh-workspace-git-badge (dsh-git-badge)
dsh-workspace-git-badge (dsh-git-badge)
kevin-mcisaac/dsh-workspace-git-badge/dsh-git-badge
DSH の Git 状態バッジ。サイドバーのワークスペース行と入力行のチップに、現在の会話が使うワークスペースの Git 状態を表示します。SSE のイベント駆動で最新状態を保ちます。
インストール
dsh plugin --profile web add github:kevin-mcisaac/dsh-workspace-git-badgeこのプラグインはリポジトリの dsh-git-badge サブディレクトリにあります。
README
dsh-git-badge
Git status badges for DeepSeek Harness
Why
Most agent workflow failures happen quietly: branches drift, uncommitted files are left behind, and approved PRs or failed builds sit unnoticed. This plugin brings repository awareness directly into your workflow:
- At-a-glance session status: branch, file counts and PR/CI state on the input box. When the session is working in a linked
git worktree, the badge follows that tree rather than the main checkout.
- Actionable session overview: pinpoints the session requiring attention. The session row status icon is extended to show what git actions are needed, e.g., push, merge. The row's hover card lists this icon, the action and the reason (
↑ push — no upstream configured). The chip leads with the same icon, and a checkout with nothing to do shows anin syncdisc — green when nothing is outstanding, amber when commits are not yet merged — so a session is never iconless.
Both are updated within seconds of any commit, checkout, stage or file edit — including inside a linked worktree for safe isolation of parallel dhs working session.
Install
Use the plugin market place or install manually:
dsh plugin --profile web add dsh-git-badge # marketplace Install does this step
Then restart the web process and refresh the browser. That is the whole install: every surface rides an upstream slot, so there is nothing to patch and no second step.
Sidebar technical details
The status icon renders using the upstream
sidebar.session.row.leading seat — a 16px cell in the row's leading cluster,
rendered only while the session is idle. The hover-card provenance line rides
upstream's own sidebar.session.row.hover seat as well.
Testing
See TESTING.md — clean-profile boot (customer simulation) and the
gotchas list. cd dsh-git-badge && npm test
runs the whole suite (parser, real temp repositories, resolution, SSE, the
watcher, every gh degradation path and the rendered surfaces) with no DSH, no
network and no restart.
Worktrees
A worktree isolates each session to ensure it does not step on another sessions work, e.g., change or delete the branch, modify the same file.
The challenge
A session can enter a worktree that is not its original workspace. Without the session's current directory, the badge would keep reporting the main checkout: the wrong branch, the wrong counts, the wrong pull request.
The solution
DSH records the session's working directory. The working_directory tool and
the worktree tool commit the change, and the badge reads that projection on
every request. Enter the worktree with the tool (or cd) and the badge follows
it. No plugin registration and no file on disk are involved. A workspace-targeted
row still reports the checkout the registry owns.
Requirements
- Node.js ≥ 20,
giton PATH - DSH 0.2.1 or newer with the
webprofile ghon PATH, authenticated, for the PR/CI token and the row'smerge/reviewactions — otherwise those are silently absent and everything else still works