dsh-git

by mattismegevand

0 会话与消息github 检测到 manifest package.json#dsh收录于 08-16

DeepSeek Harness 会话级工作树审查面板

A session-scoped working-tree review panel for DeepSeek Harness

安装

dsh plugin --profile web add github:mattismegevand/dsh-git

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

English | 中文

面向 dsh-dock、按会话隔离的 Review 面板:显示当前仓库工作树相对于 HEAD 的差异,并可在下一条消息中随附内联评审评论。

MIT License dsh-plugin

显示工作树差异的 Review 面板

功能

dsh-git 为 dsh-dock 添加按会话隔离的 Review 面板。它显示当前仓库相对于 HEAD 的已跟踪工作树差异、列出未跟踪路径,并使用 Pierre 提供统一和并排渲染。将鼠标悬停在差异装订线并点击评论按钮即可开始评审;拖动行号或按住 Shift 点击另一行可选择连续范围,直接填写评论,然后选择添加评论。

添加的评论会变成普通聊天输入框上方的紧凑胶囊。点击胶囊可检查文件、范围、所选行和评论,也可用 × 按钮移除。你可以收集多条评论并在输入框中补充普通文字;只有使用常规发送按钮后,内容才会交给智能体。

面板和 Pierre 渲染器会跟随当前 Harness 的明暗主题,并实时响应主题更改。

会话标题栏中 Open 控件旁的纯图标按钮用于显示或隐藏 Review。本插件不会在聊天输入区添加后备按钮,也不会在通用 Panels 启动器中添加条目。

版本 1 有意保持只读。它不会暂存、应用、提交、重置、切换分支、管理工作树,也不集成代码托管平台。

安装

需要 dsh-dock、dsh CLI(Node.js 22.19+ 或 24)和 pnpm 10+。面板默认关闭,只有打开后才会加载当前会话的仓库。

从 npm 安装

dsh plugin --profile web add @mattismegevand/dsh-git

从 GitHub 安装

dsh plugin --profile web add github:mattismegevand/dsh-git

从 Git 安装拉取的是源码,因此首次 add 时 pnpm 会运行包的 prepare 构建。pnpm ≥10 会先拒绝该行为:请把 pnpm 打印的精确包名复制到 profile 的 pnpm-workspace.yaml 的 allowBuilds 条目中,然后重新运行同一条 add 命令。

本地开发

git clone https://github.com/mattismegevand/dsh-git.git
cd dsh-git
corepack pnpm install
corepack pnpm check:all
dsh plugin --profile web add .

配置

  • maxRequestBytes 限制请求体大小(默认:32 KiB)。
  • maxPatchBytes 限制完整 Git 输出(默认:8 MiB)。
  • maxFileBytes 省略超过限制的单个文件补丁(默认:2 MiB)。
  • gitTimeoutMs 限制每个 Git 子进程的时间(默认:10 秒)。

安全与生命周期

Git 通过 Harness 子进程服务解析,并使用精确参数数组调用。提示、分页器、外部差异工具和文本转换均被禁用。读取操作具有超时、取消和输出大小限制;除非会话已处于 danger-full-access 模式,否则还会通过会话沙箱限制。

二进制文件、子模块、过大的补丁和不支持的条目会列出但不渲染。未跟踪文件的内容永远不会被读取。常规输入框提交在序列化每条待发送评论时,会根据显示的差异版本重新验证。差异发生变化会阻止提交,并保留评论供检查或移除。主机路由、停靠面板注册、输入引用注册、语言字典和浏览器样式均为可撤销的 Cordis effect。

相关插件

  • dsh-dock — 承载本面板的停靠系统。
  • dsh-terminal — VS Code 风格的 Ghostty 终端面板。
  • dsh-open — 会话标题栏中 Codex 风格的工作区“打开”菜单。

模型体验

本插件不会添加工具、提示段、自动模型调用或独立的后续消息。待发送评论是浏览器持有的输入框引用。常规提交会把每个引用展开为路径、差异侧、受限行范围、选中的差异文本和评论,并与补充的普通文字一起发送。它本身不会产生独立的 KV 缓存影响。

已知限制

首个版本仅审查工作树相对于 HEAD 的差异。它有意不显示未跟踪文件内容、代码托管平台元数据、分别的已暂存与未暂存更改,也不提供修改操作。

许可证

MIT

原始 README: https://github.com/mattismegevand/dsh-git/blob/main/README.zh.md ↗