dsh-more-session-operations:DSH Web 會話菜單的未讀、複製 ID 與刪除增強

前言

在 DeepSeek Harness(DSH)裏跑會話,Web 側邊欄的會話行「…」菜單是日常操作入口。但官方菜單提供的動作有限:跑完的會話想稍後再看,沒有「標爲未讀」;想把會話 ID 貼進腳本,只能自己到界面上找;歸檔一點就執行,誤觸沒有緩衝。會話一多,這些小事每次都要繞一下。

DSH 的理念是「一切皆插件」,界面層的這類補缺正適合用插件來做。dsh-more-session-operations 就是這樣一個插件:它在會話行「…」菜單裏新增「標爲未讀」「複製會話 ID」「刪除會話」三個操作,並給官方歸檔加上二次確認。下面按功能、安裝、典型用法的順序介紹。

這是什麼

dsh-more-session-operations 是一個 DSH 客戶端插件,由 Ruiming-cn 維護,許可證爲 MIT,當前版本 0.3.1。一句話定位:DeepSeek Harness Web 側邊欄會話行「…」菜單增強插件。

插件分兩端:

1、宿主端註冊刪除端點 POST /__dsh-more-session-operations/delete,負責會話刪除;

2、客戶端負責 DOM 注入菜單項、攔截歸檔操作、彈出確認框。

運行環境要求:客戶端面向 web 平臺(dsh.client.platform: web),注入依賴 @deepseek-ai/dsh-client-runtime;宿主端要求 Node >= 20,peerDependencies 爲 cordis >=4.0.0-rc <5。

核心功能

標爲未讀

在「複製會話 ID」上方新增「標爲未讀」操作。點擊後複用官方「已完成但未打開」的綠色提醒點;進入或選擇該會話後自動清除,不需要再手動標回已讀。未讀標記與官方完成提醒一樣,是會話運行期狀態,不額外落盤。

複製會話 ID

點擊後把會話 ID 寫入剪貼板,菜單項上短暫顯示「已複製」。

刪除會話

點擊後先彈二次確認彈窗,確認後通過宿主端 POST /__dsh-more-session-operations/delete 物理刪除會話。刪除鏈路包括:

  • 停止運行中的 agent;
  • 刷新/分離會話;
  • 刪除日誌目錄與 projection/workspace 記賬。

同時遞歸同步刪除所有後代子代理會話;普通分叉會話保留。

同源保護

刪除端點校驗 Origin / Sec-Fetch-Site,拒絕跨源瀏覽器請求。

歸檔會話二次確認

攔截官方「歸檔會話 / Archive session」菜單項:點擊後先彈確認彈窗,確認後調用官方 __workspacesSvc.archiveSession(sessionId) 完成歸檔,取消則不做任何操作。

安裝與啓用

先在插件倉庫目錄打包:

npm pack               # prepack 會自動構建 lib/

npm pack 會生成一個 tgz 包,再用官方插件安裝命令裝進 web profile:

dsh plugin --profile web add <生成的 tgz>

典型用法:本地開發與運行時注入

如果你在改這個插件,或者參考它寫自己的插件,可以先構建,再在已加載 dsh-super-injector 的 web 會話中注入本地倉庫,省去每次打包安裝:

npm run build          # 把 src/ 同步到 lib/

然後在 web 會話裏執行:

dev_inject_plugin {"dir": "<本倉庫絕對路徑>"}

適用場景與注意

適合長期在 DSH Web 界面裏同時跑多個會話、需要在側邊欄快速整理會話的開發者。

使用前注意:

1、插件以當前 dsh 進程的權限運行,「刪除會話」是物理刪除,且會遞歸刪除所有後代子代理會話,安裝前建議先檢查源碼與許可證(MIT);

2、插件只面向 web 平臺,其他平臺不適用;

3、宿主端刪除邏輯複用/裁剪自 lsz-asd/dsh-plugin-session-delete,僅保留 HTTP 端點,不註冊模型工具。

小結

這個插件做的事情不復雜:把會話菜單裏缺的幾個高頻操作補上,再給危險操作加一道確認。如果你經常在 Web 側邊欄整理會話,可以按上面的步驟裝上試試。

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

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

小夜