v0.1.0 — Git first-class tools for DeepSeek Harness
Release Notes — dsh-tool-git v0.1.0
Git first-class tools for DeepSeek Harness — five structured, model-facing tools that replace "shelling out to git and parsing text".
This is the first public release.
✨ Features
| Tool | What it does |
|---|---|
git_status |
Working-tree status: branch / staged / unstaged / untracked / merge conflicts, as structured lists |
git_diff |
Diff (unstaged by default; staged, stat, paths supported) |
git_log |
Commit history as structured data (hash / author / date / subject) |
git_add |
Stage files; returns the staged file list read back from the index |
git_commit |
Create a commit (message required; body, amend, stageAll supported); returns the new hash and branch |
All tools accept workdir (defaults to the session workspace; relative paths resolve against it).
🧱 Design & engineering
- One canonical JSON value per tool (
output.schema+output.render), following the official tool authoring reference. - Non-zero git exits are domain outcomes (
ok: false+error); infrastructure failures (missing executable, timeout, cancellation) throw. Cooperative cancellation viaexec.signal. - No shell injection —
child_process.execFilewith argument arrays, never interpolated command strings. - Machine-readable parsing —
git status --porcelain=v2 -zwith positional slicing: paths with spaces, rename origin paths, and unmerged (conflict) entries are handled correctly. - Configurable —
gitPath/timeoutMsthroughcordis.yml(Schemastery schema, fails loudly on invalid config).
✅ Quality
- 28 vitest tests, all passing: parser unit tests + real scratch-repository integration tests (status/diff/log/add/commit, timeouts, cancellation, non-repository, hook failures).
- GitHub Actions CI: typecheck → tests → build → real-harness load verification (boots a profile with the plugin installed and asserts
[git-tool] loaded). - End-to-end verified through the real tool pipeline (
ctx.tools.execute) and a full profile install (dsh plugin add).
🔗 Compatibility
- Tested against DeepSeek Harness 0.1.0-rc.6 (peer/dev dependencies are pinned to the packages shipped with that version).
- Requires git ≥ 2.11 (
--porcelain=v2). - Harness plugin interfaces are still evolving during the preview; see the Compatibility section in the README.
📦 Install
dsh plugin --profile web add github:Huasfan/dsh-tool-git🗺 Roadmap (not in this release)
- Tool-owned UI cards (
presentCall/presentResult) for richer Web UI rendering. - More tools:
git_branch/git_show/git_restore/git_merge. - npm publishing (
pnpm publish).