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
羽毛球分组比赛记分
小程序二维码

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

小夜