DeepSeek Harness Hub
← 返回列表

shenhuanageshei/dsh-git-status

Cordisspec-screened在 GitHub 查看 ↗
未验证

会话视图实时 git 状态 + 分支切换——会话头徽标交互与输入区环境行ambient,官方 slot…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/1 · 已提供中文文档

DSH 插件:会话视图实时 git 状态展示 + 分支切换(会话头徽标 + 输入区环境行)。官方 bundle 插件,dsh plugin --profile web add:github:shenhuanageshei/dsh-git-status#v0.1.0

综合分
28
GitHub 分
28
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add shenhuanageshei/dsh-git-status
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-git-status

会话视图实时 git 状态 + 分支切换——会话头徽标(交互)与输入区环境行(ambient),官方 slot 挂载、零官方改动。

DSH 插件:在会话视图中实时展示当前会话工作目录的 git 状态(分支、ahead/behind、脏区计数、worktree、HEAD),并支持手动切换/新建分支。官方 bundle 插件,安装:

dsh plugin --profile web add github:shenhuanageshei/dsh-git-status#v0.1.0

界面

preview

| 位置 | 槽位 | 功能 |
|---|---|---|
| 会话头徽标 ⎇ main ▾ | conversation.session.header.actions | 点击弹分支菜单:搜索 / 切换(远程 DWIM 建跟踪分支)/ 新建;agent 运行中切换需二次确认;git 错误原文回显;工作区有未提交变更时琥珀圆点提示 |
| 输入卡下方环境行 | conversation.composer.dock | 与官方统计行同槽的 ambient 读出行:⎇ main ↑2↓1 · +3 ~2 ?1 · ⧉ wt:feature-x · 0a1b2c3 10m前;分段配色(⎇ 品牌蓝、分支名 primary、脏区琥珀、worktree 紫、HEAD 弱灰)与 13px/段距 14px 的呼吸感,区别于全灰统计行;悬停显示 cwd / 主仓 / HEAD / upstream / worktree 列表 |

非 git 会话两处自动隐藏;detached HEAD 显示 ⎇ @短sha;linked worktree 显示 ⧉ 标记。

分支菜单(徽标点击):

menu

安全模型(写操作)

- 只用 git switch(绝无 --force):脏区有丢失风险时 git 自身拒绝,错误原文回显
- ref 白名单(只接受已枚举分支)+ spawn 参数数组无 shell + check-ref-format 校验新建名
- per-cwd 互斥锁串行切换;成功即失效缓存
- 读命令带 --no-optional-locks,不与 agent 的 git 操作抢索引锁

架构

- Node half(lib/index.mjs):3 条路由——GET /status(TTL 1.5s 轮询缓存)、GET /branches(TTL 5s)、POST /switch;会话 → cwd 经 ctx.sessions.get(id).header.cwd
- client half(lib/client.js):ctx.slots.inject 挂两个官方槽;2s 轮询起步、慢仓自适应退避至 8s、页面隐藏暂停
- 零构建:client 手写 CJS(与 task-status 编译产物同构的 __ModuleLoader__ 包装),无 tsdown/esbuild 依赖,改完即生效;将来接工具链时迁回 src/ + tsdown

验证记录(2026-08-31)

- 宿主进程单测:状态/计数/worktree 检测/分支清单/切换拒绝冲突分支/新建非法名拒绝/成功切换——全绿
- HTTP 实测(fixture 会话):status/branches 数据正确;switch 正反 7 路径(create/switch/worktree 冲突/坏名/未知分支/坏 mode/未知会话)全部符合预期
- client bundle:boot 接线 ✓、/plugins/dsh-git-status/client.js 200 ✓

开发

注入(运行时生效,免重启)
dev_inject_plugin
Node half 热重载(client half 需刷新页面)
dev_reload_package dsh-git-status
卸载
dev_uninject_plugin dsh-git-status

设计文档:docs/design.md。

插件管理

已装插件用 plugin-registry 的薄控制台管理(浏览器面板):管理 profile
插件安装态(bundle 层栈 + insert 行 + 启停),无需手改配置。安装:
dsh plugin --profile web add /packages/plugin/console

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(shenhuanageshei)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群