dsh-conversation:Web 端會話大綱與導航插件

前言

在 DeepSeek Harness (DSH) 的 Web 端交互中,隨着對話輪次增加,原生界面容易失去結構化信息,開發者難以快速回顧上下文或定位特定段落。本文介紹 huangfuren/dsh-conversation,它通過一個浮動面板將對話重組爲樹形大綱,提供導航、統計與快速定位功能。

插件簡介

huangfuren/dsh-conversation 是一個純 UI 插件,不接觸提示詞、消息內容或工具結果,僅讀取宿主提供的會話快照進行渲染。它主要解決 Web 端會話結構不清晰、難以快速定位與回顧的問題,提供類似於文檔大綱的閱讀體驗。

安裝與啓用

插件支持通過不可變 tag 安裝,確保版本一致性。命令如下:

dsh plugin --profile web add github:huangfuren/dsh-conversation#v1.3.1

若需跟蹤開發分支或本地調試,可使用以下命令:

dsh plugin --profile web add github:huangfuren/dsh-conversation
dsh plugin --profile web add file:/absolute/path/to/dsh-conversation

核心功能

  1. 浮動面板與會話大綱
    面板默認常駐於頁面右上角。它以“用戶提問”爲根節點,根節點包含序號、提問時間及該輪工具數與正文字數統計;助手回覆中的 Markdown 標題按層級掛載到最近的提問下。面板支持拖拽把手,位置會持久化保存。

  2. 跳轉與閱讀記憶

    • 單擊任意行,面板會自動滾動到正文對應位置並高亮節點。
    • 雙擊任意行,跳轉到“本節末尾”(下一個同級或更高級節點,若已到底部則滾動到底部)。
    • 插件會記錄每個會話的閱讀位置,切換會話後再次打開面板時,自動定位至上次閱讀節點。
  3. 面板寬度與鍵盤導航

    • 面板提供三檔寬度:緊湊 320px、加寬 480px、全屏 720px。可通過標題欄按鈕循環切換。
    • 在面板聚焦時,使用 Alt+↑ / Alt+↓ 可在節點間快速上下導航。
  4. 右側密度刻度條
    右側顯示對話密度圖,每個 tick 代表一輪提問,長度按該輪正文量歸一化。Hover 時顯示該輪摘要,點擊可直接跳轉。該功能可作爲“對話密度圖”查看。

  5. 搜索與導出

    • 搜索:支持在搜索框輸入關鍵詞,支持切換搜索範圍(全部 / 僅問題 / 僅標題),命中片段會高亮顯示。
    • 導出:支持將大綱導出爲 Markdown 格式,可複製到剪貼板或下載爲 .md 文件(文件名固定爲 dsh-conversation-outline.md)。
  6. 狀態持久化
    所有用戶偏好(收藏、展開層級、面板寬度、刻度條開關、閱讀位置)均通過 localStorage(鍵前綴 dsh-conversation:)進行持久化。

典型用法

  • 調整面板寬度:在面板標題欄點擊或使用 Alt+↑ / Alt+↓ 快捷鍵。
  • 跳轉定位:單擊大綱節點跳轉,雙擊跳至節點末尾。
  • 切換搜索範圍:點擊搜索框左側的按鈕,在“全部”、“問題”、“標題”之間循環切換。
  • 展開/收起層級:使用標題欄中的層級滑塊,控制顯示到第幾級 Markdown 標題。

兼容性與注意事項

  • 版本要求:插件已在 DSH 0.1.5-rc.2 + web profile 上驗證,並適配 DSH 0.2.x(>=0.2.0-rc.1 <1.0.0)。更早的 DSH 版本與其他 profile 未認證。
  • 降級機制:插件遇到不認識的宿主 API 時,會降級爲“面板不出現”而非拋錯,以避免影響宿主穩定性。
  • DOM 依賴:點擊定位功能依賴宿主的 DOM 契約(data-chat-anchor-key 或 data-chat-flow-kind)。若宿主未來變更這些屬性,定位功能可能失效。
  • 佈局衝突:面板使用固定定位,與其他右上角懸浮插件共存時可能會發生視覺重疊。

總結

dsh-conversation 爲 DSH Web 端提供了一套輕量級、純 UI 的會話導航方案。它不侵入數據層,通過清晰的層級結構與快捷的跳轉能力,幫助開發者更高效地管理長對話。項目詳情與源碼可參考 GitHub 倉庫。

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

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

小夜