dsh-declutter-ui:为 DeepSeek Harness 网页版做三处界面清爽化

前言

用 DeepSeek Harness(DSH)跑智能体时,大部分时间泡在 web 配置里:侧边栏切会话、中间看对话与工具轨迹、窄屏还要开合抽屉。上游 UI 有几个默认行为会让浏览成本变高——会话列表每组只露 5 条、长工具调用占满一屏、移动端侧栏可能被遮罩压在下面。社区插件 dsh-declutter-ui 针对这三点做纯前端 DOM 调整,不碰服务端、不联网、不上报。下面按「是什么 → 改什么 → 怎么装」说明。

这是什么

dsh-declutter-ui 由维护者 lg320531124 发布,归类为 客户端 插件,当前 npm 包版本 1.0.0(MIT)。它在页面加载后只修改你已打开的 Harness 网页 DOM:lib/index.js 导出空的 apply() 供 Loader 挂载,实际逻辑在 lib/client.js,经 package.json 的 dsh.client 注入。

一句话:不改变模型上下文与 token 消耗,只改善会话列表展开、工具调用折叠与移动端侧栏层级。

核心功能

1. 会话列表不再卡在「只显示 5 条」

工作区侧栏按组渲染会话时,上游用常量 SESSION_WATERMARK_BASE = 5 控制默认可见行数,其余会话挂在「展开其余 N 个会话」按钮后面;被折叠的行 不会挂载到 DOM,因而无法滚动看到,也没有设置项可调这个数量。

插件按安全规则自动点击展开:仅在按钮文案仍以「展开其余」开头且 aria-expanded 为 "false" 时点击。不能只做到「点到达消失」——全部展开后同一按钮会变成「收起」, naive 循环会反复展开/收起。资料中的示例轨迹为:两次「展开其余 …」后第三次点「收起」会再折叠,故必须遵守上述条件。

2. 长工具调用收拢为一个开关

智能体一轮可能打出上百条工具行,每条约 30px 单行摘要,阅读时像一整面「执行了命令 / 读取 …」墙。

插件在视图标签条(对话 轨迹 上下文 … ⋯)内 inline 注入「显示工具调用 N / 折叠工具调用 N」药丸按钮,一键隐藏整段工具流;折叠状态记在 localStorage。仅为显示层,不影响发给模型的内容,也不省 token。

3. 移动端侧栏抽屉提到遮罩之上

视口宽度小于 1024px 时侧栏收成图标轨,☰ 会打开 overlay 抽屉。在 README 记载的测试构建上,抽屉位移动画会发生(sidebarCol 从 x: -280 到 x: 0),但层叠仍为 z-index: 0,而背景遮罩为 z-index: 70 且带 backdrop-filter: blur(28px),看上去像灰蒙一片、侧栏「坏了」。框架本应对抽屉提升到 z-index: 71,但部分构建未生效;插件注入缺失的 CSS 规则。

实现上的补充(来自 README)

  • 自恢复挂载:React 重渲染可能冲掉注入节点;插件在 DOM 变更后节流约 400ms 复检,必要时重新挂载;标签条整块消失时退化为右上角固定浮层。
  • 清理:监听、MutationObserver、<style> 经 ctx.effect(...) 注册,插件重载时可卸载。
  • 选择器:对 CSS Module 哈希前缀用 [class*="sidebarCol"] 等后缀匹配,前缀随构建变化不影响匹配。

兼容性方面,维护者解包上游 UI 的 npm 包,核对 flowItem、viewTabs、sidebarCol、data-disclosure-row、overflow: 等 token 在 0.2.0-rc.2、0.2.1-rc.5、0.2.2-rc.1 中仍存在;手动测试注明为 DSH 0.2.2-rc.1、web profile、Windows 11、Chromium。若选择器失效,对应功能会 静默不生效(无控制台报错、页面不崩)。

安装与启用

先为 web profile 安装插件(命令来自官方 README):

dsh plugin --profile web add dsh-declutter-ui

再把包名写入该 profile 的 bundle 列表,否则 patch 层不会挂上。编辑 ~/.dsh/profiles/<profile>/package.json:

{
  "dsh": {
    "profile": {
      "bundles": [
        "…",
        "dsh-declutter-ui"
      ]
    }
  }
}

重启一次 dsh web(bundle 列表在启动时读取;客户端脚本侧刷新页面可热更新)。卸载时执行 dsh plugin --profile web remove dsh-declutter-ui,并从 dsh.profile.bundles 移除同名项后同样重启。

典型用法

安装并加入 bundles、重启后 无需额外配置。打开 Harness 网页即可:

  1. 侧栏会话组若存在「展开其余 N 个会话」,插件会在满足条件时自动点满展开(你也可照常手动点「收起」)。
  2. 在单轮对话的视图标签条查找「显示工具调用 N / 折叠工具调用 N」,点击切换整段工具行的显示;状态在浏览器 localStorage 中保留。
  3. 手机或窄浏览器窗口点 ☰ 打开侧栏,抽屉应显示在模糊遮罩之上而非被挡住。

适用场景与注意

适合:长期用 DSH web 调 agent、会话很多、或单轮工具调用特别长的开发者;需要移动端可用的侧栏导航时。

注意:

  • 插件与当前 dsh 进程及浏览器页面 同源运行,安装前建议在 GitHub 仓库 查看源码与 MIT 许可证,确认符合你的审计要求。
  • DSH 生态强调「一切皆插件」;SkillHub 目录页 是社区收录站点,与 DeepSeek / 幻方无官方从属关系。
  • 升级 DSH 后若某项「突然没效果」,优先怀疑 DOM 契约变化导致的静默降级,而非插件抛错。

结尾

dsh-declutter-ui 用一个小体积客户端包,把会话列表默认折叠、工具墙和移动侧栏层级三类干扰收成可预期的浏览体验。需要安装说明与兼容表时,以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/lg320531124/dsh-declutter-ui
  • GitHub:https://github.com/lg320531124/dsh-declutter-ui
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye