🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Git 状态栏 pinzza/dsh-git-statusline

DeepSeek Harness
pinzza36 天前有提交已提供中文文档扫描:含敏感能力

在侧边栏实时查看分支改动与领先落后提交数

29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add pinzza/dsh-git-statusline
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]—
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
数据截至 2026/10/04·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 36 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
  • 发起网络请求
    lib/client.js:220
    const response = await fetch('/git-statusline/status', {
  • 读取本地文件
    lib/git.js:36
    const head = statSync(join(gitDir, 'HEAD'))
  • 读取本地文件
    lib/git.js:37
    const index = statSync(join(gitDir, 'index'))
  • 执行外部命令固定命令
    lib/git.js:57
    const child = spawn('git', fullArgs, {
扫描于 2026/11/5(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-session
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 侧边栏显示Git状态
  • 查看分支改动
  • 查看领先落后提交数

DSH Web 侧边栏底部的紧凑 Git 状态插件,参考 ccstatusline-zh 的 Git widgets

README

由 DeepSeek 最新模型翻译生成
dsh-git-statusline DSH Web 的紧凑 Git 状态插件,参考 ccstatusline-zh 的 Git widgets。显示位置可在设置页切换:侧边栏底部(默认)、会话顶部标题后方、对话框上方、对话框下方,或关闭。 要求 DSH >=0.2.0-rc.1 <0.3.0(本仓库 0.2.1 起)。0.1.x 请用 v0.2.0 或更早的 tag。 显示格式: main (+16,-2) ↑2 ↓1 - (+16,-2):已暂存和未暂存文本改动的新增/删除行数。 - ↑2:当前分支相对 upstream 待推送的提交数。 - ↓1:当前分支相对 upstream 待拉取的提交数。 - ✓:工作区干净,且相对 upstream 没有领先或落后。 - 无 upstream 时不会显示错误的“已推送”结论,悬停提示会说明无法判断。 显示位置 设置 → Git 状态栏 → 显示位置。选择保存在浏览器 localStorage(键 dsh-git-statusline:config),改完立即生效,无需重启 DSH。
展开完整文档(README 剩余 1 节)
dsh-git-statusline

DSH Web 的紧凑 Git 状态插件,参考 ccstatusline-zh 的 Git widgets。显示位置可在设置页切换:侧边栏底部(默认)、会话顶部标题后方、对话框上方、对话框下方,或关闭。

要求 DSH >=0.2.0-rc.1 <0.3.0(本仓库 0.2.1 起)。0.1.x 请用 v0.2.0 或更早的 tag。

显示格式:

main (+16,-2) ↑2 ↓1

- (+16,-2):已暂存和未暂存文本改动的新增/删除行数。
- ↑2:当前分支相对 upstream 待推送的提交数。
- ↓1:当前分支相对 upstream 待拉取的提交数。
- ✓:工作区干净,且相对 upstream 没有领先或落后。
- 无 upstream 时不会显示错误的“已推送”结论,悬停提示会说明无法判断。

显示位置

设置 → Git 状态栏 → 显示位置。选择保存在浏览器 localStorage(键 dsh-git-statusline:config),改完立即生效,无需重启 DSH。

| 位置 | DSH 插槽 | 形态 |
| 侧边栏底部(默认) | sidebar.footer.action | 侧边栏一行;收起成 56px 轨道时退化为 ↑ / ↓ / ± / ✓ 单字符 |
| 会话顶部标题后方 | conversation.session.header.actions | 标题栏内的小 chip |
| 对话框上方 | conversation.input.dock | 输入框上方的 chip,独占一行 |
| 对话框下方 | conversation.composer.dock | 输入框下方状态行内的纯文本 |
| 不显示 | — | 完全不注册插槽,也不发请求 |

“对话框下方”与 DSH 内置的用量统计、上下文占比同处一行且宽度预算很紧:实测带边框 chip 会把那一行挤到省略号,所以该位置改用无边框纯文本。若在意那一行,建议选“会话顶部标题后方”。

兼容性

DSH 启动时会校验插件 package.json 中所有 @deepseek-ai/dsh peer 的版本范围是否覆盖当前运行时版本;不覆盖就打印 skipping profile bundle 并静默跳过整个插件,界面上不会有任何报错。

因此本插件的 peer 范围跟随 DSH 的次版本线:

| DSH 版本线 | 可用插件版本 |
| >=0.2.0-rc.1 <0.3.0 | 0.2.1 起 |
| 0.1.x | 0.2.0(注入的是已删除的 @deepseek-ai/dsh-client-runtime,在 0.2.x 上会被跳过) |

npm test 里有一组兼容性回归测试,会直接调用 DSH 自己的 evaluatePluginCompatibility(来自 @deepseek-ai/dsh-app-boot)复现这道闸门,并检查 dsh.client.inject 的每一项在已安装的 DSH 里都是真实可注入的 Web 客户端模块——避免再次出现「升级 DSH 后插件凭空消失」。找不到 DSH 安装时该组测试自动跳过(可用 DSH_INSTALL_DIR 指定)。

安装

① ② ③ 在 DSH 0.2.0-rc.1 + pnpm 11.21.0 上实测通过,③ 安装的是同一份预构建代码。插件是纯 JavaScript,lib/ 已随仓库提交,不需要任何构建步骤,也不会触发 pnpm 的构建授权提示。

① 从 GitHub 直接安装(推荐)

dsh plugin --profile web add github:pinzza/dsh-git-statusline

② 从本地检出安装(在包含本目录的父目录执行;dsh plugin 会把相对路径锚定到调用目录)

dsh plugin --profile web add ./dsh-git-statusline

③ 从 Release 的预构建 tarball 安装(与 ① 等价,离线也可用)

curl -L -o dsh-git-statusline.tgz \
https://github.com/pinzza/dsh-git-statusline/releases/latest/download/dsh-git-statusline.tgz
dsh plugin --profile web add ./dsh-git-statusline.tgz

该资产名不含版本号,releases/latest/download/ 会随最新 Release 走,因此不需要在每次发版后改这个链接。想固定版本就用钉住 tag 的形式:.../releases/download/v0.2.1/dsh-git-statusline.tgz。

安装后重启 dsh web。如果 Web 服务由其他进程管理,重启该进程并刷新 http://127.0.0.1:3080。

验证插件层已加载:

dsh --profile web --dump-config | grep -A2 dsh-git-statusline

应能看到 # == dsh-git-statusline 这一层。若同时出现 dsh: skipping profile bundle "dsh-git-statusline",说明 peer 版本范围不覆盖当前 DSH —— 升级插件或按上面的「兼容性」一节处理。

卸载:

dsh plugin --profile web remove dsh-git-statusline

验证

node --test # 在本目录执行:8 个测试(4 个 Git 解析 + 4 个兼容性回归)

插件每 5 秒固定轮询一次,并在窗口重新获得焦点时立即刷新。同一时刻最多一个进行中的请求(客户端并发去重)。Git 命令均为只读操作,设置 GIT_OPTIONAL_LOCKS=0。
不显示时的排查顺序:⓪ 插件层是否被跳过——跑一次 dsh --profile web --dump-config | grep -A2 dsh-git-statusline,看不到 # == dsh-git-statusline 或同时出现 skipping profile bundle 就是 peer 版本不兼容(升级 DSH 后最常见的静默失效原因,见「兼容性」);① 当前会话的工作目录不是 git 仓库(isRepo=false,插件按设计隐藏);② 插槽位置选了「不显示」。若浏览器 Network 里根本没有 POST /git-statusline/status,基本可判定为 ⓪ 或 ②;有请求却无渲染则是 ①。当前会话来源:0.2.x 的 sessions.list 快照不带 current,当前会话由 uiSession 服务的 current 绑定源暴露(值形如 { key: sessionId }),lib/client.js 优先读该绑定源,list.current 仅作防御性兜底。

为什么 5 秒轮询不烧 CPU:服务端每次请求先做 mtime 预检(stat .git/HEAD 与 .git/index,毫秒级)——工作区未变直接命中缓存,连 git 进程都不拉起;只有 index/HEAD 变化(如 git add/commit)才真正执行 git。因此轮询本身成本几乎为零,无需事件驱动或长间隔。

性能保护(机制借鉴自 ccstatusline 的 git 缓存设计):Windows 挂载路径(WSL 的 /mnt/,即 9P/v9fs/drvfs)上 git 遍历工作树极慢(分钟级),服务端针对慢速文件系统:
- mtime 预检:每次请求先 stat .git/HEAD 与 .git/index(两次 stat,毫秒级)——工作区未变则直接命中缓存,连 git 进程都不拉起;只有 index/HEAD 变化(如 git add/commit)才真正执行 git;
- 超时 90 秒(快路径 5 秒),保证查询能跑完而非被反复杀掉;
- 完整行数统计:diff --numstat 只比较已跟踪文件,实测秒级(远快于 status 的全工作树扫描),因此慢速路径同样返回 (+x,-y);
- 结果缓存(慢速 60s / 快速 15s,从完成时刻起算;失败/超时只缓存 10s)+ in-flight 去重——同目录并发请求共享一次 git 执行。

因此 Windows 目录下的仓库可以正常显示完整 Git 状态(分支、(+x,-y) 行数、未跟踪数、前后提交数),且工作区未变化时零 git 进程开销。代价是工作区真实变化时首次查询较慢(数秒到一分钟级)。如需更快刷新,仍建议把仓库放在 Linux 原生文件系统(ext4,如 /home)路径下。
预览分享卡片长什么样 ↓pinzza/dsh-git-statusline
分享 · DeepSeek Harness Hub
pinzza/dsh-git-statusline

在侧边栏实时查看分支改动与领先落后提交数

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部