dsh-selection-chat:在 DSH 裏選中文字加入對話、側邊提問與評論

前言

在 DeepSeek Harness(DSH)裏和模型協作時,經常要把右側預覽裏的代碼、文檔段落,或聊天記錄裏某條回覆,貼進當前輸入框。手動複製粘貼容易丟路徑和行號,也不容易區分「文件引用」和「會話記錄」。DSH 生態按「一切皆插件」擴展能力;社區插件目錄在 SkillHub,與 DeepSeek / 幻方無官方從屬關係。

下面介紹維護者 xywen97 的客戶端插件 dsh-selection-chat:在 Web GUI 裏拖選文字後浮出操作條,把片段寫入輸入框草稿,不會自動發送。

這是什麼

dsh-selection-chat 是面向 DSH 桌面 Web 客戶端的插件(分類:客戶端)。在右側欄文件預覽正文或聊天記錄裏選中一段文字,旁邊會出現 加入對話 | 側邊提問 | 評論,動作結果只追加到草稿。

與在輸入框裏自己粘貼相比,插件會按來源生成結構化引用(代碼預覽帶 文件路徑:行號,Markdown/純文本預覽只帶路徑,聊天記錄標註爲 會話記錄)。

核心功能

選中文字後的流程可以概括爲:

選中代碼/文檔 ──▶ [ 加入對話 | 側邊提問 | 評論 ] ──▶ 寫進輸入框草稿(不自動發送)

三個動作含義如下(資料中對標 Codex / Claude Code 的類似交互):

  1. 加入對話:把 文件路徑:行號(或路徑/會話記錄)與引用正文追加到當前主對話草稿。
  2. 側邊提問:打開側邊聊天,並把片段寫入側邊輸入框草稿;需同時安裝同作者的 @xywen97/dsh-sidechat,未安裝時點擊會提示先裝。
  3. 評論:彈出小輸入框,確認後把「引用 + 評論」追加到草稿。

有意不觸發浮條的區域:預覽 tab 條、路徑頭部、輸入框內草稿、應用自帶按鈕和標題——避免引用正在編輯的內容或 UI chrome。

寫入目標:側邊聊天面板打開時,浮條仍寫入主對話草稿,不會佔用側邊面板輸入框。

失敗兜底:會話提交中草稿被鎖、或拿不到宿主 inputActions 時,會重試一次;仍失敗則複製到剪貼板並提示,不靜默丟棄。

插件依賴宿主槽位 conversation.input.dock 提供的 captureInsertion 與 insertText,不調用 submit。

安裝與啓用

已發佈到 npm:dsh-selection-chat@0.1.0。宿主要求(見 package.json):Node >=20,DSH >=0.2.1-rc.5 <0.3.0-0。

一條命令安裝(npm 或 git 二選一):

# npm(推薦)
dsh plugin --profile desktop add dsh-selection-chat

# 或直接釘 Git 提交(未發佈 npm 時可用)
dsh plugin --profile desktop add "git+https://github.com/xywen97/dsh-selection-chat.git"

也可在桌面版 設置 → 插件 → 安裝,spec 填 dsh-selection-chat。裝完後幾秒內熱加載生效,必要時 Cmd/Ctrl + R 刷新窗口。

若要用 側邊提問,需額外安裝:

dsh plugin --profile desktop add @xywen97/dsh-sidechat

未裝 @xywen97/dsh-sidechat 時仍可使用「加入對話」和「評論」。

安裝前建議閱讀 GitHub 倉庫 源碼與 MIT 許可證。客戶端插件在瀏覽器側運行,行爲與當前 DSH 進程及頁面權限一致,請自行評估是否適合你的環境。

典型用法

  1. 在聊天記錄裏拖選文字,或在右側欄預覽正文裏拖選(可通過 @文件 引用芯片或右側 Files 打開預覽)。
  2. 鬆手後浮條出現,選擇 加入對話 | 側邊提問 | 評論。
  3. 點 加入對話 後,草稿末尾出現引用塊,並 toast 提示「已加入輸入框草稿(未發送)」。
  4. 點 評論 後輸入內容,用 ⌘/Ctrl + Enter 或 插入評論 寫入草稿。
  5. Esc 或點擊空白處收起浮層。

代碼預覽引用示例(行號來自 Shiki 的 pre > code > span.line):

引用 /private/tmp/dsh-test/ws/demo.py:4-6
> def add(a, b):
>     """Return the sum of two numbers."""
>     return a + b

評論示例:

評論 /private/tmp/dsh-test/ws/demo.md
> 第二項:給選中的一段話寫評論
我的評論:這條可以合併進上一條

拖選時首尾空行會自動去掉,行號相應內收。Markdown / 純文本預覽只給路徑,不給行號。

適用場景與注意

適合:經常在 DSH 裏對照右側預覽或歷史消息寫 prompt、需要帶路徑/行號或「會話記錄」標註的開發者。

限制(README 已說明):

  • 只處理右側欄預覽中的可選中文本;PDF / Office / 表格等預覽沒有文本錨點,不處理。
  • 評論寫入聊天草稿,不是釘在文件上的持久批註。
  • 行號依賴 Shiki 行結構;宿主換渲染器時可能降級爲僅路徑。
  • 極端窄窗口下浮條位置可能遮擋內容。

插件卸載或熱重載時會移除 DOM 監聽、樣式與浮層;宿主改動 [data-slot="sidebar.right.tab.document"] 等契約標記時可能靜默降級(路徑/行號缺失或改走剪貼板)。

結尾

dsh-selection-chat 把「選中 → 引用進草稿」做成固定交互,並明確不自動發送,適合作爲 DSH 桌面工作流裏的客戶端小插件。

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

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

小夜