dsh-seesion-copy-enhance:在 DSH 裏複製整條消息(文字與附件)

前言

在 DeepSeek Harness(DSH)裏整理會話時,常見操作是把某條用戶消息複製到另一個會話的輸入框,或貼到 Word、Notion 等富文本環境。DSH 自帶的複製按鈕只寫入純文本:帶截圖、文件或視頻的消息在別處往往只剩文字,附件無法一併帶走。下面介紹社區插件 dsh-seesion-copy-enhance(維護者 JMILI,分類:客戶端),它接管消息上的複製行爲,把完整內容與附件寫入剪貼板,粘貼時可恢復爲輸入框裏的真實草稿附件。

這是什麼

dsh-seesion-copy-enhance 是 DSH 的 Web 客戶端插件(包名拼寫爲 seesion,與倉庫名一致)。當前版本 0.2.0,MIT 許可證,源碼在 GitHub。插件在 Host 側讀取會話日誌與附件存儲,在客戶端側攔截複製與粘貼,與 DSH 內置「僅 text」的複製路徑形成互補。

核心功能

與內置複製對比,README 中歸納的能力如下(均以資料爲準):

操作 內置 DSH 啓用插件後
複製帶圖消息 僅 text text + 全部圖片
複製帶文件/視頻消息 僅 text text + 全部附件
粘貼到其它會話 純文本 文本 + 附件卡片,可發送
粘貼到同一會話 純文本 文本 + 附件卡片
粘貼到 Word / Notion / 郵件等 純文本 文本 + 內聯圖片
頁面刷新後再粘貼 純文本 經 Host 橋接仍可恢復附件

剪貼板同時提供 text/plain(終端粘貼仍可用)和 text/html(含隱藏媒體 token 與內聯 data: 圖)。粘貼時客戶端解析 token,向 Host 請求完整 bundle,將條目還原爲真實 File,經與會話拖放上傳相同的草稿附件通道交給 composer;附件會正常上傳與發送,而非假卡片。

若 Host 能力不完整,插件在運行時自檢 GET /dsh-seesion-copy-enhance/health 中的 capabilities;缺失項不會拋錯,會降級爲僅複製文字並在 toast 中說明,不破壞內置複製/粘貼。

版本與兼容性

package.json 聲明 engines.dsh 爲 >=0.2.0 <0.3.0。README 說明:0.2.1-rc.5 已在維護者環境端到端驗證;0.1.x 不支持(無 conversation.composer.dock 槽位與 createDrafts);>=0.3.0 未聲明,擴範圍前需重新驗證。需要 DSH Web UI 0.2.x(桌面端 UI 相同),剪貼板 API 需安全上下文(http://127.0.0.1、http://localhost 均可)。

安裝與啓用

插件以當前 DSH 進程權限運行;安裝前建議閱讀源碼與 MIT 許可證。社區目錄頁:skillhub.cn/plugins/JMILI/dsh-seesion-copy-enhance(獨立站點,與 DeepSeek / 幻方無官方從屬關係)。

1. 插件市場(推薦)

在 DSH 中打開 Plugins → Discover,搜索 dsh-seesion-copy-enhance,安裝後按提示重啓或刷新。

2. 命令行

將 desktop 換成你實際使用的 profile(桌面應用多爲 desktop,Web 安裝常爲 web):

dsh plugin --profile desktop add dsh-seesion-copy-enhance

3. 本地打包安裝

先打包再安裝 .tgz(UNC 路徑上的目錄安裝可能失敗,打包更可靠):

pnpm pack --pack-destination C:\Users\<you>\.dsh\staging

在 Plugins → install bundle 中選擇例如 file:C:/Users/<you>/.dsh/staging/dsh-seesion-copy-enhance-0.2.0.tgz。

4. 從源碼目錄安裝

README 給出 clone 後添加本地路徑的方式;若你自行改 lib/index.js(Host 半部)需重裝或重啓應用,lib/client.js 隨頁面重載。

可選配置

在 cordis.patch.yml 的插件條目下均可選設置:

- insert:
    - id: seesion-copy-enhance
      name: 'dsh-seesion-copy-enhance'
      config:
        maxAttachmentBytes: 25165824   # 單附件超過則跳過
        maxBundleBytes: 25165824       # 整條消息體積上限
        history: 32                    # Host 內存中可 resolve 的 capture 條數

被跳過的附件會出現在響應 warnings 與瀏覽器控制台;其餘內容仍會複製。

典型用法

README 中的手動驗收步驟(約 30 秒):

  1. 在任意會話中找到帶圖片的用戶消息,點複製 → toast 應顯示「已複製文字 + N 個附件,可粘貼到任意會話」。
  2. 打開另一會話(或同一會話)的 composer,按 Ctrl+V → 應出現原文與 N 個附件卡片。
  3. 按 Enter 發送 → 新消息中應再次看到圖片。

複製與粘貼的內部流程(Host 路由 GET /health、POST /capture、POST /resolve 等同源註冊;跨域 Origin 返回 403):複製時 client 調用 capture 獲取 text 與 base64 媒體並寫入剪貼板;粘貼時 client 解析 HTML 中的 token,必要時 resolve,再 createDrafts() → addAttachments() → insertText()。捕獲 bundle 默認保留最近 32 條於 Host 內存,插件卸載或 Host 重啓後清除,不落盤;僅在點擊複製時寫入剪貼板,插件不讀取剪貼板、不上傳外網。

適用場景與注意

適合需要在 DSH 多會話之間搬運「帶附件的用戶消息」、或向富文本工具粘貼含圖內容的開發者。Bridge 路由僅接受同源請求;/inspect 只返回形狀信息,不導出會話正文。已知限制:只能複製消息仍持有的附件,已被 Host 回收的媒體無法恢復;默認單附件與整包各約 24 MB(與上述配置項一致)。維護者倉庫星標爲 0,功能描述以 README 與 verify.ps1 自檢爲準。

結尾

dsh-seesion-copy-enhance 用客戶端插件補齊 DSH 消息級「整包複製/粘貼」,在 0.2.x 生態裏與「一切皆插件」的做法一致。目錄與詳情見 SkillHub 插件頁,源碼與變更見 GitHub 倉庫。

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

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

小夜