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