前言¶
DeepSeek Harness Web 插件生態中,conversation.chat.turnTail 是一個 chain slot——第一個 accept 的渲染會跳過後續渲染。dsh-better-sidebar 插件常通過 -1 的優先級搶先接管該鏈,導致官方交付卡片(包含 chips 與交付卡片)的整條渲染被跳過。本插件通過 -2 的優先級插入鏈路,僅在存在 present 聲明的回合接手渲染,繞開了鏈被搶佔導致的卡片消失問題。
它是什麼¶
dsh-delivery-cards 是 vclike 維護的一個 DSH Web 插件。它提供獨立的交付卡片行,具備 11 類文件類型圖標、亮暗雙主題支持,且完全零依賴零構建。
安裝與啓用¶
插件未發佈至 npm,需從 GitHub 源碼安裝。
- 安裝插件:
dsh plugin --profile web add github:vclike/dsh-delivery-cards
- 本地開發:
git clone https://github.com/vclike/dsh-delivery-cards.git
dsh plugin --profile web add link:D:/path/to/dsh-delivery-cards
- 登記包名:
在<DSH_HOME>/profiles/web/package.json的dsh.profile.bundles數組中添加"dsh-delivery-cards"。若不登記,瀏覽器半邊不會被組裝進啓動圖。 - 重啓服務:
修改前端 bundle 後必須重啓dsh web。
注意:不要在
dsh.profile.bundles的cordis.patch.yml裏手動寫insert:行。宿主行由插件包內的cordis.patch.yml自動插入,手動重複會導致衝突。
核心功能¶
- 優先級控制:以 -2 優先級參與
turnTail鏈渲染,只在有present聲明的回合接手;無present時回退,行爲與未裝插件一致。 - v2.0 啓發式兜底:客戶端新增兜底層,當
presented爲空時,按路徑、格式、大小啓發式過濾produced。這使得任何模型(Kimi、Claude、GPT 等)即使未調用present也能渲染交付卡片。 - 卡片交互:
- 點卡片空白處(或 Enter/Space)側邊欄預覽。
- 兩個常駐按鈕「打開」(默認程序)和「定位」(文件資源管理器),無摺疊二級菜單。
- 文件圖標:支持 11 類文件類型圖標(PDF、DOC、表格、PPT、MD、HTML、圖片、視頻、音頻、壓縮包、代碼)。未收錄的擴展名回落爲文字徽標。
- 主題適配:配色全部走主題 token,支持亮暗雙主題切換。
技術細節與修復¶
- 鏈路搶奪修復:
dsh-better-sidebar搶佔了官方交付卡片的渲染入口,導致卡片消失。本插件通過更低優先級搶佔,優先處理有present的回合。 - Windows 窗口可見性修復:上游
@deepseek-ai/dsh-native-command的revealNativePath使用了windowsHide: true,導致 Windows 資源管理器窗口創建爲不可見狀態。本插件在宿主半邊重寫了該方法,將windowsHide改爲false,確保定位按鈕能正常打開可見窗口。
環境要求¶
- DSH:
^0.1.5-rc.1 - Node:
>=20 - 平臺:Windows 平臺下的「定位」功能修復了窗口不可見問題;非 win32 平臺回退上游實現。
結語¶
dsh-delivery-cards 解決了 DSH Web 生態中交付卡片在多插件環境下不穩定顯示的問題,並通過 v2.0 的啓發式兜底和 Windows 窗口修復,提升了跨模型的兼容性和易用性。
- GitHub: https://github.com/vclike/dsh-delivery-cards