DSH Web 的 vscode-git-graph 1.30.0 忠实移植:入驻 dsh-better-sidebar 右侧栏的原生 Git Graph 提交图 tab(前置依赖),自动绑定会话工作区,host 直跑全套 git 操作(checkout/merge/rebase/push/tag/stash),文件 diff 复用内置 DiffTab 打开。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-dev-git-graph
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:kp-z/dsh-dev-git-graph#path:/packages/dsh-dev-git-graph
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH 插件:会话 Git Graph 面板——源码级移植 mhutchie/vscode-git-graph 1.30.0(MIT 许可), 在 DSH Web GUI 的会话页里以「Git 树」tab 显示当前会话工作区的提交图(分支彩线、 提交信息、日期、作者、分支/标签),右键支持 checkout / merge / rebase / push / tag / stash 等全部操作。
架构
会话 tab「Git 树」(client.js)
└─ sessionCwd() 从 sessions 取该会话工作区
└─ iframe /dsh-dev-git-graph/gg/index.html?repo=<cwd>
│ host 注入 window.__DSH_GG_BOOT__ = { apiBase, repo, initialState, ... }
▼
git-graph 前端(media/gitgraph.js,原版 webview UI)
└─ VS Code 兼容桥:postMessage → fetch POST /dsh-dev-git-graph/gg/api
▼
host 路由 (src/git-graph/routes.ts)
└─ vendor/git-graph/dataSource.ts:child_process 直跑 git(spawn 数组,无 shell 注入)
▼
本地 git 仓库
- 静态:
GET /dsh-dev-git-graph/gg/及/<static>(media/ 下构建产物,index.html 动态注入 boot 数据)。 - API:
POST /dsh-dev-git-graph/gg/api,命令集对齐原扩展gitGraphView.respondToMessage(约 60 个命令)。 - 主题:CSS 把
--vscode-*映射到 DSH--dsw-alias-*设计变量(缺省值兜底),随主题变明暗。
与原版差异
| 项 | 说明 |
|---|---|
| VS Code 专属命令 | openFile / viewDiff / openTerminal / createPullRequest / createArchive 等返回「暂不支持」 |
| 状态持久化 | 前端 localStorage(原扩展用 workspaceState),setGlobalViewState 等直接 ACK |
| 仓库来源 | 自动绑定当前会话工作区(无工作区时 tab 显示提示) |
构建与安装
# 构建(web 前端 tsc → media/ 合并;host tsc → lib/;client.js 拷贝)
pnpm --filter dsh-dev-git-graph build
# 类型检查
pnpm --filter dsh-dev-git-graph typecheck
# 安装到 web profile(本地 file: 依赖)
dsh plugin --profile web add file:/Users/kp/DEV/dsh-plugins/packages/dsh-dev-git-graph
# 重启 dsh web 生效;会话页出现「Git 树」tab
Better Sidebar 集成(前置依赖)
本插件的唯一 UI 入口是 dsh-better-sidebar 右侧栏的原生 Git Graph tab(「+」菜单,单例去重、经 scope.repoRoot/scope.cwd 自动绑定会话工作区;点文件 diff 直接打开内置 DiffTab)。需先装 better-sidebar——未装时本插件不注册任何 UI。
# 一行完整安装(先 better-sidebar,再本插件)
cd ~/.dsh && dsh plugin --profile web add dsh-better-sidebar && dsh plugin --profile web add dsh-dev-git-graph
许可
前端与数据层来自 mhutchie/vscode-git-graph,许可见 vendor/git-graph/LICENSE(MIT)。
本插件的 host 集成代码按 MIT 发布。
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-git-graph★ 9048
输入框上方提供 Git 分支选择器,并把分支泳道与提交历史画成图谱,沿着时间线找到任意变更。
Akimiya-z/codex-guard#dsh★ 133
在 DeepSeek Harness 内做提交前的 Pull Request 卫生检查:扫描当前改动中的 TODO 残留、硬编码密钥与非规范提交信息。
Cerbur/clutch-dsh#clutch-dsh-worktree★ 34
为 DSH Web UI 增加按 Git Worktree 组织 Session 的视角,同时继续由 DSH 管理原始 Project 和 Session 数据。
lehhair/dsh-diff-viewer★ 26
PiUI 风格 diff 查看器,替换 write/edit 工具调用的默认 DiffBlock。
DamonKoy/dsh-web-ui#dsh-git-graph★ 25
dsh web GUI 会话头部栏的 Git 分支选择器与提交图。
PerryLink/dsh-github★ 24
官方级 GitHub CI 集成:composite action.yml、轮询 PR 评审机器人(幂等行内评论 + status-check 门禁)以及 PR/issue 工具,所有写入走人工审批门。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。