前言¶
在 Tauri、EAC、Electron 等應用封裝端裏運行 dsh web 時,WebView 自帶的右鍵菜單往往不完整:會話側欄缺少常用操作,對話正文和輸入框的編輯項也不齊全,和桌面原生客戶端的體驗有差距。DeepSeek Harness 官方組件已覆蓋部分會話操作,但歸檔之外沒有公開的永久刪除接口,封裝端用戶仍需要一套可預期、可擴展的上下文菜單。
下面介紹社區插件 baihejiangnan/dsh-session-context-menu(更好的右鍵)。它面向承載 DSH Web UI 的桌面封裝端,在會話、工作區、設置頁、對話正文、鏈接與輸入框等場景提供接近原生客戶端的右鍵體驗,菜單與提示文案支持中英文並自動跟隨宿主 UI 語言。
這是什麼¶
dsh-session-context-menu 由維護者 baihejiangnan 發佈,分類爲客戶端插件,在 SkillHub 目錄與 GitHub 上均可查閱。插件通過 Cordis patch 注入 DSH Web 客戶端,不修改 @deepseek-ai/* 核心包或其他社區插件;卸載後不留下補丁。
需要特別說明的是:當前版本不適配原生 Web 端。 直接在 Chrome、Edge、Firefox 等普通瀏覽器中打開 dsh web 不在支持範圍內,瀏覽器原生右鍵行爲也不是兼容目標。插件只面向 Tauri、EAC、Electron、WebView2、CEF、Qt WebEngine 等承載 Web UI 的應用封裝端。
核心功能¶
會話與工作區¶
會話行右鍵菜單複用官方重命名、分叉、歸檔能力,並額外提供帶確認框和路徑保護的永久刪除。工作區及其「新會話」入口支持新建會話、打開目錄、重命名、複製路徑、歸檔會話和安全移除工作區。還可打開目錄、複製目錄路徑和會話 ID。
官方已有的會話操作轉交官方組件;永久刪除通過插件宿主路由處理,因爲 Harness 當前僅公開歸檔而沒有刪除會話 RPC。
文本、鏈接與輸入框¶
普通文本支持複製所選內容;全選嚴格限定在當前對話內容 slot 或設置彈窗,不包含應用側邊欄。鏈接或選中的網址可使用系統默認瀏覽器打開、複製鏈接。輸入框提供撤銷、重做、剪切、複製、粘貼、全選。所有插件菜單均提供「刷新當前 Harness 頁面」。
永久刪除會話¶
永久刪除不可恢復。點擊「刪除會話」後會顯示插件內置確認框,只有點擊「確定刪除」纔會繼續;點擊取消、遮罩空白處或按 Esc 均視爲取消。
刪除運行中的會話時,插件會先取消任務、等待 Agent 停止並脫離 live session,避免日誌被後臺重新寫回。刪除當前正在查看的會話後,內容區進入與頂部「新建會話」一致的默認狀態;刪除其他會話不會改變當前內容區。遞歸刪除僅允許作用於當前 DSH_HOME/sessions 下、目錄名與會話 ID 完全一致的 JSONL 會話目錄。
擴展協議¶
其他 Web 插件可通過全局註冊表登記擴展菜單項。run 在點擊時執行,visible 可按會話決定是否顯示:
const menu = globalThis[Symbol.for('dsh.session-context-menu.extensions')]
const dispose = menu.register({
id: 'example.session-details',
order: 100,
label: '會話詳情',
visible: ({ session }) => Boolean(session),
run: ({ session }) => console.log(session),
})
每次打開右鍵菜單還會派發 dsh:session-context-menu 事件,detail 包含 row、官方菜單 action、session、原始 target、鼠標座標 x/y 和當前 extensions。擴展插件應在卸載時調用註冊返回的 disposer。
兼容策略¶
插件通過會話行的無障礙語義定位目標,通過 sessions 和 workspaces 公開服務執行業務;無法確認目標時保留瀏覽器默認菜單。與 dsh-better-sidebar 共存時(v0.2.14+),「在資源管理器中打開」直接調用宿主 RPC host.openPath(POST /api/host.openPath),目錄始終交給系統文件管理器,避免 better-sidebar 包裝 workspaces.openPath 後把目錄當文件打開。
安裝與啓用¶
要求已安裝 DeepSeek Harness,並使用承載 Web UI 的 Profile(例如 web 或 tauri)。推薦跟隨 GitHub main 分支安裝,以獲取最新功能並可直接執行更新命令:
dsh plugin --profile web add github:baihejiangnan/dsh-session-context-menu
如果希望鎖定到當前穩定版本,不自動跟隨後續更新,可以安裝 Git 標籤。當前最新穩定標籤爲 v0.2.14:
dsh plugin --profile web add github:baihejiangnan/dsh-session-context-menu#v0.2.14
安裝後重啓 dsh web 或承載它的 Tauri、EAC 等應用封裝端。開發者也可以克隆倉庫後使用本地路徑鏈接:
git clone https://github.com/baihejiangnan/dsh-session-context-menu.git
dsh plugin --profile web add ./dsh-session-context-menu
更新¶
通過未鎖定的 GitHub 地址安裝後,執行下面的命令獲取 main 上的最新穩定版本:
dsh plugin --profile web up @baihejiangnan/dsh-session-context-menu
更新完成後重啓 dsh web 或應用封裝端。使用 #v0.2.14 等標籤鎖定安裝的用戶,需要先把依賴目標改成新的穩定標籤,或重新執行對應新標籤的安裝命令。
卸載¶
dsh plugin --profile web remove @baihejiangnan/dsh-session-context-menu
適用場景與注意¶
適合在 Tauri、EAC、Electron 等封裝端日常使用 DSH 的開發者:需要完整右鍵菜單、永久刪除會話、或在封裝端內打開目錄和外部鏈接時,可以安裝本插件。
安裝前應注意:
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼與許可證(MIT)。 - 不支持在普通瀏覽器中直接使用;若你的環境是
dsh web裸跑在 Chrome 裏,本插件不會改善右鍵體驗。 - 同名會話無法從公開 DOM 語義中唯一識別時,插件不接管該會話行的默認菜單,以免操作錯誤會話。
- Clipboard API 不可寫時會回退到瀏覽器複製命令;宿主禁止讀取剪貼板時會提示使用
Ctrl+V。 - 本插件不提供「置頂會話」:Harness 當前沒有獨立的 pin 狀態和公開操作接口,強行模擬會干擾全局排序偏好。
main 分支已包含將在下一版本發佈的中英文適配和永久刪除會話功能;穩定版 v0.2.14(2026-08-18)主要修復了與 dsh-better-sidebar 共存時打開目錄報錯的問題。
結語¶
dsh-session-context-menu 爲 DeepSeek Harness 應用封裝端補上了會話、工作區、對話與輸入等場景的原生風格右鍵菜單,並在官方歸檔之外提供可控的永久刪除能力。若你使用 Tauri 或 EAC 等封裝端運行 DSH,可按上文命令安裝試用。