DeepSeek Harness Hub
← 返回列表

jiesou/dsh-webui-fix-pack

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

修复 DeepSeek Harness Web UI 的 PWA、移动端支持,各种小 bug 和不合理的地方

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/11 · 已提供中文文档
综合分
30.2
GitHub 分
30.2
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add jiesou/dsh-webui-fix-pack
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-webui-fix-pack

修复 Web UI 的各种小 bug 和不合理的地方

English

本着 不重复造轮子 的原则,这个 plugin 聚合包是在 dsh 本身的 webui 上做优化,修复 PWA,修复响应式问题等等

而且,每个 fixup 都作为独立 plugin 提供 可以逐个独立安装独立卸载

我不希望:

- 自造 webui
- 从头实现自己的原生“desktop”
- 丢弃现有的插件生态
- 做“All in One”一堆功能的一体化 plugin

设计目标是让每个 plugin 的作用域尽可能的小,代码尽可能少且干净。绝大多数 plugin 是纯前端、纯 client-half 的

但因为只能注入前端 JS 之类的,因此有些实现会有点 hacky。毕竟官方来修这些问题会容易很多!希望最终 dsh web 需要“fix”的越来越少,这个 fix pack 不再被需要!

这是搭配 lehhair/dsh-mobile 之后,能获得的完美移动端 PWA 体验:

https://github.com/user-attachments/assets/f11f9447-d6be-47ea-a9c6-bd2bb9041936

- 消息换行
- 消息 steering
- 子代理面板

都非常优雅

安装

建议先安装 lehhair/dsh-mobile 获得更好的移动端体验!

安装整个 dsh-webui-fix-pack 聚合包

从 npm 安装(预构建产物,推荐):

dsh plugin --profile web add @jiesou/dsh-webui-fix-pack

或从 GitHub 安装:

dsh plugin --profile web add "github:jiesou/dsh-webui-fix-pack#main&path:/bundles/dsh-webui-fix-pack"

安装后需要 重启 web 生效

如需在 pack 中单独禁用某插件,在 profile 的 cordis.patch.yml 按 id 覆盖即可

单独安装单个插件

所有子插件都已发布到 npm,包名对应仓库 plugins/ 下的目录名,例如:

dsh plugin --profile web add @jiesou/dsh-webui-fix-composer-focus-restore

Plugins

pwa

plugins/dsh-webui-fix-pwa

手机全屏 PWA 默认全屏展示,会隐藏顶部状态栏和底部导航栏,必须划拉一下才能拉出来:

https://github.com/user-attachments/assets/433a9dfe-202e-4e25-a784-9bccf6243c2a

现在把 PWA 改为 standalone 而不是 fullscreen 模式,并按 design token 注入正确的 color

PWA 图标也单独生成:避免和黑色背景混在一起

mobile-enter-newline

plugins/dsh-webui-fix-mobile-enter-newline

https://github.com/user-attachments/assets/f322ad94-5ba2-4cda-a10e-51902a9331db

需要搭配 lehhair/dsh-mobile 使用

原来的 webui 在移动端完全无法通过软键盘实现换行,这个扩展让移动端软键盘下 Enter 能够换行

上游进展:运行中主按钮的「点击即 queue / steering」已由本体实现——primaryStops 只在输入框为空(或 blocked)时才变停止键,有文字时按钮本就是发送键,按 busyEnter 偏好 queue 或 steer,图标也随之切成发送箭头。因此本插件原来的 sendify(换图标 + 拦 click 回放一个合成 Enter)已删除,只剩软键盘 Enter 换行这一半。

mobile-hide-h-scroll

plugins/dsh-webui-fix-mobile-hide-h-scroll

需要搭配 lehhair/dsh-mobile 使用

这个 plugin 在手机 WebView 里左右滑动打开侧边栏时,能看到横向滚动条,现在将它隐藏了

此功能已提交 PR 给 dsh-mobile 并被合并,由 dsh-mobile 在 2026-08-24 的 commit 49f904c 中实现。聚合包默认不再包含此插件,旧版本用户可单独安装 @jiesou/dsh-webui-fix-mobile-hide-h-scroll。

mobile-stats-line
plugins/dsh-webui-fix-mobile-stats-line

需要搭配 lehhair/dsh-mobile 使用

底部显示统计信息的 stats line 在移动端会被截断且没有 tooltip,现在可以点它跳出 tooltip 看完整信息了

上游 tooltip 只挂了 hover(还要等 500ms)和 focus 两条触发路径,而 stats line 是个不可聚焦的 div,触摸下只能靠时灵时不灵的模拟鼠标事件。现在触摸设备上点击即显、再点即收,桌面 hover 行为不变

此功能已由 dsh-mobile 在 2026-09-01 的 commit 5c6a90e(随 v0.1.4 发布)以另一种方式实现:stats line 被放进一个 mask-image 钳制的显示窗口里,左右滑动即可看到完整读数,触摸下不再需要点击弹 tooltip。现在仅适用于尚未包含该实现的旧版本,聚合包默认不再包含此插件,旧版本用户可单独安装 @jiesou/dsh-webui-fix-mobile-stats-line

session-row-context-menu

plugins/dsh-webui-fix-session-row-context-menu

会话列表中,必须要鼠标瞄准小小的“三个点”,左键才能打开菜单,很麻烦

现在可以在任意位置右键打开

hide-like-dislike

plugins/dsh-webui-fix-hide-like-dislike

每个 agent 回复下面的“好的回答 / 有问题的回答”两个反馈按钮没有任何作用

这个插件直接隐藏它们;纯 CSS 实现,只注入一个 style 标签

hide-session-log

plugins/dsh-webui-fix-hide-session-log-btn

右上角的 save Session log 按钮很少用到,却占很大的屏幕空间。尤其是在移动设备上很难受

真的需要的时候也可以通过 /export 命令,不需要这个按钮

因此隐藏这个按钮,同时回收它占用的标题栏空间

composer-focus-restore

plugins/dsh-webui-fix-composer-focus-restore

https://github.com/user-attachments/assets/9d39a220-7933-4902-8f64-38c9ec7978b4

/models 等命令选择后,popup 框关闭,消息框焦点会跑走的,必须再点一下消息框,才能接着打字

修复了这个问题

此功能已由 DSH 本体的 @deepseek-ai/dsh-client-ui-commands 在 2026-08-12 的 commit a2d0f7f 中实现。现在仅适用于尚未包含该实现的旧版本,聚合包默认不再包含此插件,旧版本用户可单独安装 @jiesou/dsh-webui-fix-composer-focus-restore。

subagent-panel

plugins/dsh-webui-fix-subagent-panel

顶部“N 个子代理”下拉框没有绑定点击事件,只能靠 hover 停留 150ms 展开;而菜单和按钮之间留了 5px 缝隙,hover 移开 120ms 就自动收起,导致经常“点了没反应”、“还没点到就缩回去”

现在点击即可展开/收起(hover 展开保持不变);面包屑里的祖先切换器点击跳转语义不受影响

同时,在窄屏 / touch 布局下标题栏子代理会话列表会从 left: 0 溢出屏幕,本插件在 coarse-pointer UI 上把它钳制到视口内(搭配 lehhair/dsh-mobile 使用)

before/after:

上游进展:上下文面板那一半已被 lehhair/dsh-mobile@22bcdbf 修复——通用 [role='dialog'] 设置弹窗规则收窄为 :has(> nav),并给 context 面板单独保留了 min(264px, calc(100vw - 32px)) 几何。搭配该提交之后的 dsh-mobile 时,本插件只剩标题栏子代理会话列表这一半还在生效;那个弹层是核心 ui-subagent 的固定定位(.menu { position: fixed; width: 336px },无视口钳制),属 deepseek-harness 固有问题,不是 dsh-mobile 引起的。

上游进展:DSH 本体在 2026-08-20 的 commit de572dd 只收了「弹层钳制到视口」那一半(menu 改 position: fixed + createPortal 到 body + catalogMenuPosition);而且恰恰是这次提交把触发器的 onClick={() => changeOpen(!open)} 改成了 hover-only——顶部「N 个子代理」不再绑定 click,只剩 hover 150ms 展开 / 120ms 收起,上游 e2e 也同步把 .click() 换成了 .hover()。本机 dsh 0.1.2-alpha.3 已含该提交,实测触摸下依然点不开。点击展开/收起、祖先切换器让路、hover grace 绕开 5px 缝隙竞态这一半仍只有本插件覆盖,本插件继续保留;fitPanel 那半现在与上游重复

double-enter-to-steer

plugins/dsh-webui-fix-double-enter-to-steer

有 queue 消息时,再按一次 Enter 直接把 queue 消息写入 steering 消息

实现“单击回车 queue”,“双击回车 steering”

此功能已由 DSH 本体在 2026-08-02 的 commit dffe955 中实现。现在仅适用于尚未包含该实现的旧版本。

mobile-keyboard-blur

plugins/dsh-webui-fix-mobile-keyboard-blur

需要搭配 lehhair/dsh-mobile 使用

https://github.com/user-attachments/assets/55f1ab47-6b16-4946-842c-fcd3ff97143f

焦点停留在消息框时打开侧边栏切换 session, 会导致 WebView 把键盘收起后又弹回来,界面鬼畜

修复了这个问题

此功能已由 DSH 本体在 2026-08-20 的 commit e06625d 中实现。现在仅适用于尚未包含该实现的旧版本,聚合包默认不再包含此插件,旧版本用户可单独安装 @jiesou/dsh-webui-fix-mobile-keyboard-blur。

依赖策略

聚合包 package.json 的 dependencies 永远写 latest,不做本地路径替换

本地开发由 web profile 的 devDependencies link 覆盖:所有子插件指向本仓库 plugins/ 目录,改源码即时生效,且不进入 dependencies,dsh plugin reconcile 不会把它们加回 bundles

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

💬 加入 DPharness 群聊

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

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