dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness (dsh) plugin: Git status pill in the session header — branch, dirty counts, ahead/behind, recent commits & changed files.
DeepSeek Harness(dsh)Web UI 的 Git 状态可视化插件——会话头部的 Pill 胶囊、详情弹窗与完整的 Git 中心,无需切换终端。
Read this in English
+N −N ?N)· 领先/落后每个会话头部一个状态胶囊;点击展开详情弹窗——仓库根、状态计数、最近提交、带行内暂存/取消/丢弃的变更文件,以及分支操作:
| 状态 | Pill |
|---|---|
| 干净 | ● main |
| 有变更 | ● main · +2 −1 ?3 |
| 领先 / 落后 | ● main · ↑1 ↓2 |
| 游离 HEAD | ● (detached HEAD) · a1b2c3d |
| 非 Git 仓库 | 弱化 无 Git 仓库 |
从弹窗打开——四个标签保持挂载,选中、过滤与滚动位置在切换间不丢失。历史为默认首项。
分页提交列表 + SVG 分支图渲染——窗口化渲染保证数千行流畅;选中行以发光轨道点亮(赛博风格,自动适配减弱动效):
feat/*、fix/*、远程 origin 组)默认收起更规整;拉取按钮同步远程引用今天 = 本地当日零点起(非 24 小时);24 小时内 与近 7/30/90 天为独立档位选中提交后展示主题·正文·变更文件树(目录可折叠、按状态着色)。点击文件树中的文件跳转变更页,以该提交为基线展示此文件的变更,并以提交哈希徽标标识所属提交:
IDE 式三段分组(已暂存/更改/未跟踪)、单文件与批量暂存/取消/丢弃(两步确认)、提交框:
差异查看器:
对照(前后并排,默认)/ 变更前 / 变更后;并排分隔条可拖拽调占比(20%–80%).md 文件提供 渲染 档:标题/列表/表格/围栏代码高亮;mermaid 图原生渲染(含渲染/源码切换与解析失败提示)新增/已删除 徽标Turn 工作记录回答「这一轮动了什么、谁动的」:
new N + 三方计数:本 本会话 agent · 会 其他会话 AI · 外 人工(IDE/终端)无变更产出 标注)≈;悬停按 ⇄ 可改判归属(仓库级持久化)新显示预设(极简/标准/完整,纯派生——手动调整重新匹配预设时自动吸附回位)、Pill 与弹窗逐项开关、弹窗区块排序与差异查看器选项:
最近提交 条数(0 = 隐藏)需要已运行 DeepSeek Harness 且使用 web profile:
dsh plugin --profile web add dsh-git-ui
重启 dsh web。在 git 仓库的会话中打开即可见头部 Pill。卸载:dsh plugin --profile web remove dsh-git-ui。
本地开发安装:
dsh plugin --profile web add ./会以 link 方式接入本仓库; 需保持node_modules/@deepseek-ai/*的开发 peer 符号链接(见开发)。
每个会话展示其自身工作目录的状态;非仓库会话显示弱化占位符。
默认开箱即用。高级用户可在 profile 的 cordis.patch.yml 中覆盖插件配置:
- id: git-ui
config:
defaultRefreshIntervalMs: 60000 # 轮询间隔(毫秒);0 关闭轮询
maxChanges: 200 # 快照中变更文件条目上限
timeoutMs: 3000 # 每条 git 命令超时(毫秒)
maxStatusBytes: 8388608 # status 输出截断上限
dshHome: /path/to/harness-home # 可选:Harness 家目录(默认 $DSH_HOME → ~/.dsh)
^22.19.0 || >=24.0.0>= 0.1.0-rc(开发者预览版)gitmaxChanges);超大 status 输出经 spill 文件兜底恢复计数。sessionId——宿主解析 cwd 并以路径守卫运行 git 命令。$(...)、glob、eval)为启发式——回落 外 并带可见 ≈ 标记;冷会话跳过;观测时间线有上限。pnpm install
# 链接宿主提供的 peer 依赖,使本地 profile 安装可解析:
mkdir -p node_modules/@deepseek-ai
for p in "$HOME"/.dsh/profiles/node_modules/@deepseek-ai/*; do
ln -sfn "$p" "node_modules/@deepseek-ai/$(basename "$p")"
done
pnpm run typecheck && pnpm test && pnpm run build
dsh plugin --profile web add ./ # 本地安装;重启 dsh web 验证
插件分层以隔离 dsh 平台,业务逻辑在 dsh API 演进时保持不变:
flowchart TB
subgraph Biz["业务层——零 dsh import"]
HostBiz["src/host/ · core / actions / queries / parser"]
ClientBiz["src/client/ · controller / GitPill / GitCenter"]
end
subgraph Contracts["契约层——稳定接口"]
C["src/contracts/ · host-endpoints / client-platform / ui-primitives"]
end
subgraph Adapters["适配层——唯一感知 dsh 的代码"]
A["src/adapters/dsh/ · client-adapter / ui-primitives / types"]
end
HostBiz --> C
ClientBiz --> C
C --> A
A --> DSH["dsh 平台 · cordis / typert / ui-primitives"]
src/contracts/ — 插件自有的稳定接口,无 dsh importsrc/host/ / src/client/ — 基于这些接口的业务实现src/adapters/dsh/ — 唯一导入 @deepseek-ai/* 的地方;dsh 升级只改这里