工作区 Git 变更
August 17, 2026 · View on GitHub
右侧抽屉「Git 变更」,展示当前会话所属工作区的仓库状态。只读面板:模型仍是仓库状态的唯一修改者。
功能
- 按已暂存/未暂存/未跟踪分组列出变更文件;porcelain 状态码;改名/复制显示
源 → 目标。 - 点击文件打开 diff 面板:吸顶头部(状态码、+/- 行数、复制差异),正文逐行着色,带旧/新两侧行号栏(横向滚动吸住、不可选中)与行悬停高亮。
- 抽屉从右侧弹出,左缘可拖动宽度(最小 320 px);Esc、点外或头部按钮关闭。
- 未跟踪文件、空 diff、输出截断各有提示。
组成
| 包 | 角色 |
|---|---|
dsh-plugin-workspace-git | 组合包(dsh.bundle),patch 插入 git 与 ui-git 两行 |
@deepseek-ai/dsh-git | 主机服务 ctx.git:git status --porcelain=v1 -z 与 git diff HEAD,经 subprocess 执行(argv、不带 shell) |
@deepseek-ai/dsh-client-ui-git | 浏览器 UI:conversation.session.header.utilities 槽位入口,数据经注入的 git 钩子到达 |
安装
见仓库根 README。使用仓库根目录 dist/*.tgz,不要传入 harness 源码目录或 file: 路径。
限制
- 只读:无 stage/unstage/discard 操作。
- 列表与 diff 各是独立时点读取,可能短暂不一致;重开面板重载列表。
- diff 捕获是有界尾部(Host
truncated标记而非隐藏)。