前言¶
在 DeepSeek Harness(DSH)里跑 Agent 时,改动的文件往往分散在终端命令、多轮对话和多个子项目之间。若工作区根目录本身不是 Git 仓库,或一个容器里并列着 frontend、backend 等多个独立仓库,单靠本地 git status 很难在「当前 Session」的上下文里快速对齐:改了哪些文件、暂存与未暂存如何区分、本轮对话里各分支又多了哪些 commit。
下面介绍维护者 xuex991 发布的客户端插件 Working Changes(DSH 界面中常显示为 当前变更,仓库 xuex991/dsh-working-changes)。它只做只读展示:对比当前工作区与 HEAD 的变更,并在 DSH 原生右侧栏查看 unified diff;同时可按 Session 范围浏览本地分支上新增的 commit。分类为客户端;社区目录页见 SkillHub 条目。
这是什么¶
当前变更 是一个体量较小的只读 DSH 插件:在当前 DSH 工作区内展示相对 HEAD 的文件改动,并支持在右侧栏逐文件查看 diff;多仓库工作区会按仓库分组。它不替代 Git 客户端做暂存、提交或推送,而是把「Session 里到底动了什么」嵌进 DSH 会话界面。
维护者:xuex991(GitHub:xuex991/dsh-working-changes)。
核心功能¶
会话顶部的变更摘要¶
- 单仓库:显示
分支 · 更改文件数 · +新增行 −删除行。 - 多仓库:显示
仓库数 · 文件数 · +新增行 −删除行,文件按仓库分组。 - 鼠标悬停总览可看到各项目与当前分支(含刚初始化、尚无 commit 的仓库),并列出变更文件及每个文件的行数变化。
- 点击总览或某个文件,在 DSH 原生右侧栏打开 diff。
工作区与 Git 状态¶
- 区分 已暂存、未暂存、未跟踪、冲突 等状态;支持文件筛选、状态标记、重命名、二进制文件列表与手动刷新。
- 使用 Codex 风格的层级文件树,支持按路径搜索与目录折叠,只展示包含变更文件的目录。
- 在右侧栏渲染带行号与平台 diff 配色的 unified diff。
多仓库自动发现¶
工作区根目录不是 Git 仓库时,插件会尝试发现其下并列的独立仓库(默认扫描一层,并跳过依赖目录与构建目录)。典型布局如下:
project/ ← 不是 Git 仓库
frontend/.git ← 会发现
backend/.git ← 会发现
infra/.git ← 会发现
node_modules/... ← 跳过
每个文件归属唯一仓库;某一仓库读取失败不会隐藏其他仓库的改动。
Session 内的 commit 历史(只读)¶
从「当前变更」相关入口可选择 本 Session 内、各本地分支上产生的 commit(按项目分组、时间倒序)。选中 commit 后查看其相对第一个父提交的文件变更,并继续打开文件 diff。历史不展示远程分支、Push 状态或 Push 事件。
刷新时机¶
Agent 每轮结束、窗口重新聚焦以及手动刷新时会更新视图。
明确不提供的能力¶
只读:没有暂存、提交、切分支、stash、push、pull 或 worktree 等写操作。
安装与启用¶
插件以当前 DSH 进程权限运行;安装前请自行查看仓库源码与 LICENSE(README 标注为 MIT)。DSH 生态采用「一切皆插件」思路;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
环境要求(来自 README):
- DeepSeek Harness 0.2.1-rc.2 或更新版本。
- DSH 宿主机环境中可用的
git命令。
通过 DSH 插件页¶
- 打开 DSH 的 插件。
- 点击 添加插件。
- 输入仓库地址:
https://github.com/xuex991/dsh-working-changes
- 安装并启用 当前变更(Working Changes)。
通过插件市场索引¶
在 插件 → 发现 → 索引源 中添加:
https://xuex991.github.io/dsh-working-changes/index.json
安装后,在发现页找到 当前变更。xuex991 相关插件的稳定安装入口也汇总在 xuex991.github.io/dsh-working-changes。
典型用法¶
- 在 DSH 中打开含 Git 仓库(或多子仓库)的工作区,启用插件后查看会话顶部的变更摘要。
- 悬停摘要确认分支与各文件行数;点击摘要或文件,在右侧栏阅读 diff。
- 多仓库时按分组确认每个子项目的改动;需要时用文件树路径搜索缩小范围。
- Agent 跑完一轮后视图会自动刷新;也可手动刷新。
- 若需回顾本 Session 内在本地分支上新增的 commit,使用 revision 选择器选中 commit,再逐文件查看相对父提交的 diff。
适用场景与限制¶
适合:在 DSH Session 内快速核对 Agent 或人工编辑带来的改动;多仓库容器工作区统一浏览;需要只读 diff 而不想在 IDE 与终端之间来回切换时。
实现与边界(README「说明 / Limits」):
- 文件状态区分 staged / unstaged,但文件 diff 仍比较完整工作区与
HEAD。 - 历史仅读本地分支;以 Session 首次观察到分支时的 HEAD 为祖先基线,只展示之后产生的 commit。
- 每个仓库最多 200 个本地分支、每分支最多 500 个 commit,超出会提示截断。
- 二进制文件仅列在列表中,不渲染正文;单个 diff 最多 400,000 字符。
- 不展开 submodule;不展开已发现仓库内部的嵌套仓库。
发现相关 Host RPC 配置(可选):支持 discoverDepth、repos、repoLabels、untracked、maxRepos、concurrency、repoTimeoutMs。默认发现一层、最多 20 个仓库、4 个仓库并发、每仓库 15 秒超时;显式传入 repos 时关闭自动发现。
结尾¶
当前变更 把「相对 HEAD 的工作区改动」和「本 Session 内本地 commit」收进 DSH 会话 UI,并与原生右侧栏 diff 联动,适合需要只读、可刷新视图的场景。