前言¶
在 DSH 裏跑長對話時,工具調用、思考過程和用戶提問往往混在同一條時間線裏。靠肉眼掃正文找「這一回合從哪開始、答過哪些問、工具堆在哪」很費時間;官方滾動容器能翻頁,但缺少按類型彙總的一鍵跳轉。若只在腦子裏記回合號,窗口一窄或過程組一折疊,錨點更容易丟。
下面介紹社區客戶端插件 dsh-chat-gutter(維護者 lin114514-desng):在聊天列兩側空白帶畫標記,並在輸入區提供兩列「快速移動」面板。純客戶端,只讀 DOM,不改官方聊天結構。
這是什麼¶
dsh-chat-gutter 是 DeepSeek Harness 的 Web 客戶端插件,當前包版本 0.2.29(MIT)。它解決兩類問題:在長會話裏快速識別回合與過程類型,以及從輸入區附近跳到指定提問、工具小結、AI 回答或用戶消息。
插件分類爲客戶端;實現上僅 require('react'),不依賴桌寵、圖片素材或第三方模塊。宿主需滿足 dsh.engines.dsh = ">=0.2.1-rc.2"(README 以 DSH 桌面端 0.2.1-rc.2 爲環境說明)。社區目錄頁:SkillHub 插件頁;源碼與說明:GitHub 倉庫。
四條標記(雙側標識帶)¶
標識帶畫在 document.body 下兩層 position: fixed、寬 92px 的覆蓋層裏,pointer-events: none,不修改官方聊天 DOM。裁剪窗優先認 [data-conversation-scroll],再按 overflow-y 向上查找;空白不足約 104px 時整條帶隱藏,面板與高亮仍可用的部分不受影響。
回合編號路標(右側)¶
每個回合一枚 #1、#2… 純文字路標,錨定用戶自己發的那條消息,細豎線串成時間線,隨滾動實時跟隨。
過程徽標(左側)¶
按回合聚合成一枚,文案形如 ⚙️工具數 ⌨️命令數 🧐思考數,沒有的類不寫。錨點優先官方回合彙總條,再退過程組頭,最後退回該回合第一個工具行。另有 🤔提問(等待作答的提問卡)與 📦上下文壓縮;已答提問在過程組「向用戶提出了問題」一行留一枚 🤔。
回答段弧線與 ▶答¶
AI 完成工作後的整段正文左側畫花瓣形弧線,顏色取 --dsw-specific-accent;長度等於段落真實長度(兩端各外延 4px),滾動時只隨內容上下移動。▶答 徽標釘在弧線垂直中點,中點滾出可視區時貼到可見邊緣,整段出窗時與弧線一起消失。
快速移動面板¶
輸入區左側有「快速移動」按鈕,按鈕上方(空間不夠時翻到下方)彈出寬 340px、最高 320px 的兩列浮層,掛在 document.body 下,不參與輸入區排版。
打開方式有三種:
- 懸停:停約 0.12 秒彈出;移開按鈕和麪板約 0.35 秒後收起。
- 左鍵:點開再點收起;釘住時移開不收。
- 右鍵:打開並釘住。
點分類或條目後面板同樣釘住,直到點面板外、按 Esc 或再點按鈕。觸屏無懸停,點按打開即可。
- 左列:
🤔 AI 提問、⚙️ 工具、▶️ AI 回答、💬 你的消息,每類後跟條數;空類變淡,右列顯示「這一類還沒有」。 - 右列:
1 · 摘要(摘要約 20 字);點編號跳到目標處並收起面板。跳轉直接寫聊天滾動容器的scrollTop,目標行停在正文上沿下方 96px。 - 底部:存在更早歷史時出現
⬆️ 加載更早,行爲等同官方頂部按鈕;無更早歷史時不顯示。
收起的過程組仍算面板裏的一條;點編號會先展開該回合(官方 beforematch),再滾動;失敗則退回該回合彙總行。「AI 提問」摘要從 React 內部數據讀題幹,儘量不展開摺疊行以免頁面跳動。
配置¶
側欄「插件」→ dsh-chat-gutter 包詳情 → 行 dsh-chat-gutter 的「配置」:
| 項 | 說明 |
|---|---|
| 啓用左側標識帶 | 總開關;關閉會移除覆蓋層、全部標記與正文高亮屬性 |
| 回合編號路標 | 右側路標開關 |
| 行級徽標 | 左側過程徽標等 |
| 回答起點高亮 | 關閉 / 幹完活後 / 總是 |
點「保存」寫入宿主配置並立即生效。宿主解析不到 @deepseek-ai/schemastery 時,瀏覽器半邊可按內置默認(三項全開、回答弧線「幹完活後」)運行。
安裝與啓用¶
README 寫明安裝、啓用、停用、重啓見倉庫內 INSTALL-PLAN.md,由用戶在應用界面操作;資料中未給出 CLI 形式的 dsh plugin add … 命令,此處不臆造安裝語句。
安裝前建議閱讀源碼與 MIT 許可證,並確認插件以當前 DSH 進程權限在客戶端注入運行;插件不讀取會話數據、不髮網絡請求、不寫 localStorage。
典型用法¶
- 啓用插件並保存配置後,在長會話中觀察右側
#n與用戶消息對齊的時間線。 - 需要跳轉到某次工具小結或 AI 回答時,打開「快速移動」,選左列類別,在右列點編號。
- 待答提問用左側
🤔或面板「AI 提問」定位;界面語言非中文時,「AI 提問」歸類可能落到「工具」(README 已知邊界)。 - 開發自檢可在插件目錄執行:
cd dsh-chat-gutter
node --check lib/client.js && node --check lib/index.js
pnpm test
適用場景與注意¶
適合:經常在 DSH Web/桌面聊天裏處理多回合、多工具、長正文,需要側欄路標和分類跳轉的開發者。
注意:
- 錨點依賴官方屬性如
[data-chat-turn]、[data-chat-flow-kind]等;官方 DOM 改版後需更新lib/client.js選擇器。 - 同一頁面多個聊天流容器時,只跟隨第一個可見容器。
- 窗口過窄時標識帶自動隱藏;快速移動與回答高亮邏輯仍按 README 說明工作。
結尾¶
dsh-chat-gutter 把回合編號、過程計數、回答段弧線和輸入區兩列跳轉收進純客戶端一層,方便在長對話裏定位而不改官方結構。進一步瞭解可訪問 SkillHub 目錄頁 與 GitHub 倉庫。DSH 社區插件目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。