Skip to content

v0.1.0 — Git first-class tools for DeepSeek Harness

Choose a tag to compare

@Huasfan Huasfan released this 14 Aug 14:57
· 3 commits to main since this release

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 via exec.signal.
  • No shell injectionchild_process.execFile with argument arrays, never interpolated command strings.
  • Machine-readable parsinggit status --porcelain=v2 -z with positional slicing: paths with spaces, rename origin paths, and unmerged (conflict) entries are handled correctly.
  • ConfigurablegitPath / timeoutMs through cordis.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).