DSH Loading Phrases:替换 DeepSeek Harness 运行状态文本

前言

DeepSeek Harness (DSH) 在运行任务时,Web GUI 的状态栏会显示“Deep diving…”。这个提示信息在长时间运行的任务中显得单调。DSH 采用插件化架构,插件 vincent-guo/dsh-loading-phrases 的作用是在不改变原有 UI 布局的前提下,将这段文本替换为交替出现的机智短语和实用提示。

插件简介

这是一个由 vincent-guo 维护的插件,属于“趣味换装”类别。它的核心功能是在 DSH Web GUI 中,用随机的“机智短语”和“实用技巧”替换“Deep diving…”状态,同时保留原有的流光动画效果和运行时间计时器。

核心功能

该插件在任务运行期间(即原状态线出现时)介入,具体行为如下:

  • 位置与样式保留:文本替换发生在与原状态线相同的位置,渲染效果(如流光渐变)和 15 秒后出现的计时器完全保持原样。
  • 严格的交替逻辑:采用严格的 5 秒机智短语 / 10 秒实用技巧的交替模式,且每次任务开始都从机智短语开始。
  • 不重复洗牌:使用 Fisher-Yates 洗牌算法实现不重复的随机轮播,同一轮次内不会出现重复条目。
  • 语言适配:根据 GUI 的语言环境(zh 为中文,其他为英文)自动选择对应的短语库。
  • 无障碍支持:将文本同步到状态行的 aria-label,确保屏幕阅读器能读出实际内容。
  • 宽屏截断:在窄窗口下,超长短语会自动截断并显示省略号。
  • 失效回退:如果插件脚本失效或 DOM 结构发生变化,插件会记录控制台诊断信息,并自动回退到 DSH 原生的“Deep diving…”文本,不会导致界面崩溃。

安装与启用

通过 CLI 安装该插件:

dsh plugin --profile <profile> add @vincent-guo/dsh-loading-phrases

该插件声明了 dsh.bundle.patch,因此 dsh plugin add 会自动协调 dsh.profile.bundles。安装后,重启 DSH 进程并刷新 Web GUI 页面(⌘/Ctrl+Shift+R)即可生效。

如果安装时未使用 bundle 协调机制,需要在 ~/.dsh/profiles/<profile>/cordis.patch.yml 中手动添加 load row:

- insert:
    - id: loading-phrases
      name: '@vincent-guo/dsh-loading-phrases'

配置与自定义

插件提供了一个图形化设置面板来管理配置。

GUI 设置面板

在 Web GUI 的侧边栏底部,进入 Settings -> Loading Phrases 页面。你可以在此进行以下操作:

  • 模式选择:支持 all(交替)、witty(仅机智短语)、tips(仅实用技巧)、off(关闭,恢复原生文本)。
  • 时长设置:调整机智短语和实用技巧的停留时间(单位:秒,存储为毫秒)。
  • 洗牌开关:控制是否启用不重复随机轮播。
  • 语言策略:选择 auto(跟随 GUI)或强制指定 en/zh。
  • 内容编辑:通过 English / 中文 标签页编辑对应的短语和技巧列表。
  • 保存策略:点击保存会即时应用更改。Save phrases 按钮仅写入修改过的部分,未修改的列表将保持为空(继承内置内容)。
  • 打开配置文件:点击“Open phrase config”按钮,会使用默认编辑器打开配置文件进行批量编辑。

配置文件

配置文件位于 ~/.dsh/dsh-loading-phrases.json。这是机器本地的配置,所有配置文件都共用此一份。插件以 MIT 许可证发布。

默认配置结构如下:

{
  "loadingPhrases": {
    "mode": "all",
    "wittyIntervalMs": 5000,
    "tipsIntervalMs": 10000,
    "shuffle": true,
    "language": "auto",
    "phrases": { "en": [], "zh": [] },
    "tips": { "en": [], "zh": [] }
  }
}

内容来源

  • 机智短语:数量为英文 49 条、中文 24 条,来源为 Qwen Code 的 web-shell 列表(Apache-2.0 许可证)。
  • 实用技巧:数量为英文 40 条、中文 40 条,针对 DSH UI 的实际行为编写。

开发与扩展

如果你想修改源内容,可以编辑 src/data/witty.json 和 src/data/tips.json(注意:这两个文件中的 en 和 zh 是独立的内容,并非翻译关系)。修改后,运行 node scripts/sync-data.js 重新生成 lib/client.js 中的数据块。

适用场景与注意

该插件适合希望在长时间运行的任务中获得更丰富视觉反馈的 DSH 用户。

注意事项:
* 插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
* 修改代码文件(如 lib/*.js)需要重启 DSH 进程,单纯修改配置文件刷新页面即可生效。
* 插件不保证在 DSH 未来版本 UI 结构剧烈变更时的兼容性,但内置了失效回退机制。

总结

DSH Loading Phrases 通过简单的配置和自定义,将枯燥的运行状态转化为动态的交互体验。它遵循 DSH 插件化的设计理念,提供了完善的 GUI 管理面板和配置文件编辑能力。

  • GitHub 仓库:https://github.com/vincent-guo/dsh-loading-phrases
  • 插件目录:https://www.skillhub.cn/plugins/vincent-guo/dsh-loading-phrases
羽毛球分组比赛记分
小程序二维码

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

小夜