dsh-delivery-cards:獨立交付卡片行,修復鏈路搶佔與窗口可見性問題

前言

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 源碼安裝。

  1. 安裝插件:
    dsh plugin --profile web add github:vclike/dsh-delivery-cards
  1. 本地開發:
    git clone https://github.com/vclike/dsh-delivery-cards.git
    dsh plugin --profile web add link:D:/path/to/dsh-delivery-cards
  1. 登記包名:
    在 <DSH_HOME>/profiles/web/package.json 的 dsh.profile.bundles 數組中添加 "dsh-delivery-cards"。若不登記,瀏覽器半邊不會被組裝進啓動圖。
  2. 重啓服務:
    修改前端 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
羽毛球分组比赛记分
小程序二维码

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

小夜