dsh-git
Verified@necokeine/dsh-git · v0.1.2 · MIT · Web UI
Git status, commit, and push sidebar plugin for the DeepSeek Harness web interface
Install
dsh plugin add @necokeine/dsh-git Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Readme
dsh-git
English | 中文
适用于 DeepSeek Harness Web 界面的 Git 状态、提交与推送插件。它在侧边栏底部为当前会话的项目目录增加一个动作入口,面板会显示分支、上游、改动文件与行数汇总,并提供 提交、提交并推送 和 推送 操作。
功能
- 跟随当前会话 — Git 状态和所有写操作都使用 Web 界面当前会话的项目目录。
- 工作区详情 — 显示插件只读状态路由返回的分支、上游、领先/落后计数、改动文件和增删行数。
- 提交与推送 — 请求当前会话 agent 使用输入的信息提交、提交后推送,或单独推送已有本地提交。
- AI 生成提交信息 — 提交信息为空时按下 提交,会请求当前会话的 agent 暂存并提交工作区,由 agent 生成简洁的提交信息。
- 安全刷新 — 刷新时保留上一次成功状态;当前项目改变后会丢弃已过期的在途读取结果。
安装
插件面向 DeepSeek Harness Web 界面(
dsh web)。Node 半份挂载只读状态路由,且只接受当前存活会话已持有的目录;Git 写操作遵循当前会话 agent 的标准工具与权限流程。
通过 dsh plugin 安装到 profile:
dsh plugin --profile web add @necokeine/dsh-git
重启 dsh web 并刷新页面。包内 bundle patch 会禁用内置 ui-git 行,再用独立的 Loader 条目挂载本包,因此只会运行一个 Git 底部动作。
卸载命令:
dsh plugin --profile web remove @necokeine/dsh-git
也支持其他安装形式:
- 本地检出 —
dsh plugin --profile web add ./path/to/dsh-git或link:./path/to/dsh-git。 - Tarball — 运行
pnpm pack后安装生成的.tgz;包内包含预构建的lib/产物。 - Git —
dsh plugin --profile web add github:necokeine/dsh-git#<sha>;从源码安装时,需要在 profile 的 pnpm 构建策略中允许执行本包的构建脚本。
开发
pnpm install
pnpm test
pnpm typecheck
pnpm build
pnpm lint
pnpm pack
Node 入口挂载 /dsh-git/status,校验 JSON 请求,并在运行只读 Git 命令前拒绝任何不属于存活会话的目录。浏览器入口注册 sidebar.footer.action 组件与本地化词典,创建 GitController,通过该路由获取状态,并把提交/推送请求交给当前会话 agent。独立浏览器测试使用小型本地 store 与图标 stub。tests/apply.harness.spec.ts 保留在 Harness 检出中使用真实 SlotRegistry 与 locale 插件的集成覆盖,并由独立 Vitest 配置排除。
项目结构
src/
index.ts # 仅限存活会话目录的只读 Git 状态路由
invariant.ts # 包 invariant companion
client/
index.ts # 浏览器注册与 Git 写操作委托
git-api.ts # 面向浏览器的插件状态传输
git-controller.ts # 状态与面板状态
GitAction.tsx # 底部触发器与面板
git-action.module.css
locales.ts # 中英文词典
tests/ # controller、组件与注册测试
cordis.patch.yml # 禁用内置 ui-git 行并挂载本包
tsdown.config.ts # 独立 Node 与浏览器 bundle 构建
模型体验
底部动作不贡献提示词段或工具 schema。提交、提交并推送与推送操作会通过当前会话的提示管道发送一条普通用户消息,该消息由标准用户消息日志记录。
已知限制
- 没有项目目录的会话不显示 Git 状态。
- 提交与推送由当前会话 agent 执行,遵循该会话的标准工具权限和认证环境。
- 二进制文件和未跟踪文件不计入行数汇总。
- 没有上游的分支没有领先计数,因此配置上游前,独立 推送 操作保持禁用。
许可证
MIT