插件目录 / Developer / dsh-evolve-in-git
dsh-evolve-in-git
未验证 Kytolly
功能简介
A deepseek-harness plugin, making your agent evolve in customed git repository.
未验证 — 尚未实测
A deepseek-harness plugin, making your agent evolve in customed git repository. 尚未验证——请自行安装测试。
「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-evolve-in-git
Git-backed long-term memory and evolution plugin for DeepSeek Harness.
What it does
This plugin treats a user-chosen or preconfigured Git repository as the memory store.
It can write session notes, branch-specific records, and reusable skill drafts into that repo, then commit them as ordinary Git history.
Install
# example: install into the web profile
dsh plugin --profile web add github:Kytolly/dsh-evolve-in-git
The bundle inserts one dsh-evolve-in-git row with the plugin defaults.
Later profile patches can override repoPath, repoUrl, auth, and the storage roots.
Windows local install. A
file:source containing spaces (D:\Deepseek Harness\…)
is split by the CLI argument parser, so use a space-less path (a junction or short path):dsh plugin --profile web add file:C:/Users/13928/.dsh/evolve-in-gitThe built
lib/(including the browserlib/client.js) is committed, so thegithub:route works as-is. Rebuild locally withpnpm buildafter source
changes, then commit the artifacts.
Config
Web settings UI (v0.1.4+). The plugin ships a browser half that registers a
first-level Settings → 演进记忆 section on the web profile's Settings page.
The section binds theevolve-gitsettings namespace and edits every field
below through the official settings transport (nestedauthis written as one
merged object); theauth.tokenfield is write-only (redacted from the wire).
Requires the profile to be restarted after install so the client manifest is
rescanned.
repoPath- the local Git checkout that stores memory and skills. Defaults to~/.dsh-evolve-in-git/remote-memory.repoUrl- the remote memory repository. No personal default ships with the plugin: the built-in default is the placeholderhttps://github.com/<your-github-username>/<your-memory-repo>.git, so configure your own repository (see "Per-user config file" below).auth- Git auth settings for private access. The default profile is SSH-first and token-capable.memoryRoot- where memory records are written, default.dsh-evolve/memory.skillsRoot- where skill drafts are written, default.dsh-evolve/skills.defaultBranch- branch to evolve from when creating new branches, defaultmain.remoteName- remote to fetch and push, defaultorigin.autoCommit- whether writes auto-commit, defaulttrue.
Auth
auth.mode: "ssh"- usesshor a customsshCommand.auth.mode: "token"- usetokenor a token fromtokenEnvand a GitHub-styleAuthorizationheader.
Per-user config file
Each DSH user keeps one local config file at $DSH_HOME/evolve-in-git.json
(~/.dsh/evolve-in-git.json by default). It is user-local and never part of any
Git repository — do not commit it. The file is the single user configuration
layer: the web Settings → 演进记忆 form reads and writes exactly this file
(showing the defaults overlaid by your file values, and saving writes the file
immediately), and the /evolve config show|open|refresh|set <key> <value>
commands edit it too. The embedded config-file editor opens the raw JSON.
Example:
{
"repoPath": "/absolute/path/to/your/local-memory-checkout",
"repoUrl": "https://github.com/<your-github-username>/<your-memory-repo>.git"
}
Never put access tokens in this file — use
auth.tokenEnvto name an
environment variable, or the web settings token field (write-only).
The web Settings → 演进记忆 section also embeds a config-file editor that
opens this file directly, edits it as raw JSON, and saves it through the
loopback-only /api/evolve-git/config route (saves apply immediately).
Harness entry points (v0.1.3)
The plugin targets the current Harness 0.1.1-rc.2 host contracts for commands,
tools, system prompt, and invariants (peerDependencies are ^0.1.1-rc.2). Install it
into a profile, then restart that profile so the bundle layer is composed.
Tools:
evolve_connectevolve_statusevolve_rememberevolve_branchesevolve_help
Human command:
/evolve connect/evolve status/evolve branches/evolve remember <kind> <title> :: <content>/evolve help
After installation, verify composition before starting a long-lived profile:
dsh --profile web --dump-config
dsh --profile web
The first command should show the evolve-git row from the plugin bundle. The
second command boots the profile; once loaded, the model sees the fiveevolve_* tools and the UI command registry exposes /evolve.
Browser half (v0.1.4+)
src/client/- the browser bundle (lib/client.js) compiled bytsc -p tsconfig.client.json && tsdown(seetsdown.config.ts); registered as
asettings.sectionslot so the web Settings page renders the config form.package.json-exports["./client"]+dsh.client(platform: "web") are
the manifest contractdsh-client-modulesscans to include the bundle inwindow.__DSH_BOOT__.
Current slice
v0.1.4 makes the plugin directly usable from Harness and adds the web
settings UI.
It adds the first tool and command surfaces, but still leaves skill-promotion strategy, safe rollback, sync reminders, and timeline views for later versions.
Limits
- No automatic prompt injection yet.
- No merge/conflict resolver yet.
- No sync to the DSH skill registry yet.
- No branch switch, diff, or revert command surface yet.
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-evolve-in-git」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:Kytolly/dsh-evolve-in-git Headless(CLI)profile:
dsh plugin --profile headless add github:Kytolly/dsh-evolve-in-git 实测报告
尚未 L3 验证——若已跑过,见下方失败备注。