前言¶
在 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 秒):
- 在任意會話中找到帶圖片的用戶消息,點複製 → toast 應顯示「已複製文字 + N 個附件,可粘貼到任意會話」。
- 打開另一會話(或同一會話)的 composer,按
Ctrl+V→ 應出現原文與 N 個附件卡片。 - 按
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 倉庫。