dsh-task-progress:輸入框上方的實時任務進度卡

前言

在 DeepSeek Harness(DSH)裏跑 pip install、帶 tqdm 的循環或模型訓練時,進度往往散落在終端輸出裏,想估剩餘時間或中止任務還要切回日誌。DSH 內置 jobs 客戶端服務會推送當前會話的任務狀態,但默認界面未必把「進度條 + 速度 + ETA + 停止」集中放在輸入區附近。

下面介紹的 dsh-task-progress(維護者 Dekurri)是一款客戶端插件:在會話輸入框上沿浮動顯示正在運行的任務,解析常見進度格式,並支持一鍵停止。數據來自 DSH 推送流,純前端、運行時零第三方依賴,不輪詢、不發額外網絡請求、不落盤。

這是什麼

  • 定位:DSH 插件,浮動「活」進度卡片,掛在 conversation.input.overlay 層。
  • 倉庫:github.com/Dekurri/dsh-task-progress(package.json 版本 0.1.2,協議 MIT © 2026 Dekurri)。
  • 解決問題:當前會話裏 running / stopping 任務的進度、速度與預計剩餘時間可視化;不佔用輸入框高度;多任務時可摺疊。

社區目錄頁:skillhub.cn/plugins/Dekurri/dsh-task-progress(獨立生態站點,與 DeepSeek / 幻方無官方從屬關係)。

核心功能

出現與數據源

插件只渲染當前會話中狀態爲 running 或 stopping 的任務;沒有運行中任務時不渲染、不佔位。進度與元數據來自 DSH 內置 jobs 客戶端服務的推送,而非自行輪詢。

多格式進度解析

啓發式解析常見輸出,包括但不限於:

  • tqdm 進度條;
  • 帶標籤分數(如 Epoch 3/10、step 120/1000、1/132 項);
  • 裸百分比、pip install 各階段。

同一行同時出現 epoch 與 step 時,以更細的 step 作爲主進度,epoch 放在詳情行。無法識別的格式仍顯示階段與最後一行輸出。

速度、ETA 與已用時長

tqdm 自帶 rate 時直接使用;否則由樣本估算。預計剩餘時間按 tqdm 的 <mm:ss> 形式或根據已用時間外推。

一鍵停止

「停止」需兩段確認(3 秒內點第二次),經 DSH 任務 kill 通道下發;停止過程中顯示「停止中…」並禁用按鈕。前臺命令(agent 正在等待結果)與後臺任務均支持。

界面行爲

  • 默認展開 2 個運行中任務,其餘摺疊爲「還有 N 個」,整卡可收起。
  • 中英雙語隨 DSH 界面語言;亮/暗主題自適應;支持 prefers-reduced-motion。
  • 展開/收起不改變輸入框高度。

安裝與啓用

需要 DSH 0.2.x(在 0.2.1-rc.5 上驗證)。插件運行時無第三方依賴;package.json 聲明 Node >=20(用於開發側 check 腳本)。

安裝前請自行審閱倉庫源碼與 MIT 許可證;插件隨 DSH 客戶端加載,權限邊界與當前 DSH 進程一致。

方式一:Release 包

  1. 從 Releases 下載 dsh-task-progress-<版本>.tgz,解壓到長期存在的目錄(安裝爲符號鏈接,刪除源目錄會導致插件失效)。
  2. 在 DSH 插件管理器中按絕對路徑安裝該目錄(GUI),或讓 AI 助手調用:
plugin_manager install_bundle
# target 傳解壓目錄的絕對路徑

成功時返回結果裏 application 爲 "applied";安裝後輸入框上方出現卡片即表示生效。

方式二:Git 規格

由插件管理器按 git 規格安裝:

plugin_manager install_bundle
# target 爲 github:Dekurri/dsh-task-progress

卸載:

plugin_manager remove_bundle
# target 爲 dsh-task-progress

典型用法

無需額外配置。在 DSH 中執行會輸出進度的命令即可,例如:

pip install torch
python train.py          # 輸出 Epoch 3/10、step 120/1000 等

卡片會自動出現;連點兩次「停止」可取消任務。多個任務並行時顯示前 2 個,其餘摺疊。

兼容性與依賴注入

  • DSH:0.2.x(0.2.1-rc.5 驗證)。
  • 客戶端注入(package.json → dsh.client.inject):
  • @deepseek-ai/dsh-api-job-controller
  • @deepseek-ai/dsh-client-locale
  • @deepseek-ai/dsh-client-ui-conversation

若上游修改 jobs 服務或 job.* 幀格式,可能需要同步升級插件。

限制與適用場景

適合:在本會話內頻繁跑安裝、訓練或長循環,希望在輸入區附近一眼看到進度並快速中止。

注意:

  • 進度解析爲啓發式,極端或非標準日誌可能信息不全。
  • 僅當前會話;不展示其他會話或歷史任務;任務結束後卡片消失,不保留「已完成」記錄。

結尾

dsh-task-progress 把 DSH 已有的任務推送轉成輸入框上方的進度卡,覆蓋 tqdm、pip、訓練 epoch 等常見格式,並補速度與 ETA、雙次確認停止。安裝以 Release 目錄或 plugin_manager install_bundle(絕對路徑 / github:Dekurri/dsh-task-progress)爲準。

羽毛球分组比赛记分
小程序二维码

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

小夜