AFAP/dsh-message-minimap:DeepSeek Harness Web 會話用戶消息導航條

前言

DSH 的擴展方式是插件化,社區目錄是獨立站點,不是 DeepSeek / 幻方官方應用商店。對於 DSH Web GUI 中的長會話,用戶發送的消息容易夾在多輪迴復裏,靠滾輪迴看比較費時。

AFAP/dsh-message-minimap 在 DeepSeek Harness Web GUI 會話聊天窗的左邊緣顯示一條迷你導航條:每一條你發送的消息都是刻度,懸停看摘要,點擊即跳轉,拖動可快速掃讀長會話。

本文基於已覈實資料,介紹它解決什麼問題、能做什麼、如何安裝,以及使用邊界。

這是什麼

AFAP/dsh-message-minimap 是由 AFAP 維護的客戶端插件,使用 MIT 許可證。

它解決的問題很具體:在 DSH Web GUI 會話中快速定位“我之前發過的那條消息”。插件不改變會話內容,只在聊天窗左邊緣提供一條緊湊居中的迷你導航條,把用戶消息映射成刻度,支持懸停預覽、點擊跳轉和軌道拖動。

GitHub 倉庫地址:

https://github.com/AFAP/dsh-message-minimap

核心功能

下面介紹已覈實的能力。

  • 在聊天窗左側顯示一條緊湊居中的迷你導航條。
  • 每條用戶消息對應一個刻度,刻度在刻度列上均勻分佈。
  • 覆蓋全部用戶消息,包含分頁未渲染的歷史;點擊未加載的刻度會自動向上翻頁。
  • 按消息 id 將 API 數據與 DOM 節點精確關聯,點擊後平滑滾動到目標消息。
  • 當前視口內的消息刻度自動加粗高亮。
  • 鼠標掃過刻度列時魚眼放大。
  • 懸停刻度彈出預覽卡,顯示消息序號、總數、摘要和時間。
  • 點擊或按住拖動軌道背景按比例跳轉。
  • 流式輸出、加載歷史、切換會話、窗口縮放時自動跟隨。
  • 內容未溢出、無用戶消息或在新會話引導頁時自動隱藏。
  • 提供中英雙語界面文案。
  • 刻度爲原生 button,可 Tab 聚焦後回車跳轉。

這個插件是隻讀的:不修改 DOM 業務結構、不攔截自身軌道外事件、不修改/刪除任何文件。

安裝與啓用

使用下面的命令安裝:

dsh plugin --profile web add github:AFAP/dsh-message-minimap

安裝完成後,重啓 dsh web 生效。

典型用法

先準備一個有多條往返消息、且內容已溢出可滾動的會話,然後按下面的步驟驗證。

  1. 打開該會話,查看聊天窗左邊緣是否出現一條帶刻度的細條。
  2. 將鼠標懸停在刻度上,查看消息摘要、序號、總數和時間。
  3. 點擊某個刻度,跳轉到對應用戶消息。
  4. 點擊或按住拖動刻度以外的軌道背景,按比例快速跳轉。
  5. 如果會話太短、沒有用戶消息,或處於空白新會話頁,導航條會自動隱藏。
  6. 如果宿主路由不可達,插件會降級爲只顯示已加載消息的刻度。

API 與數據邊界

宿主僅新增一個只讀路由,用於從會話日誌提取用戶消息摘要:

GET /api/message-minimap-messages?sessionId=<sessionId>

這個路由需要瀏覽器信任圍欄通過,支持 loopback 或 trustedHosts + 同源校驗,否則返回 403。

請求參數邊界如下:

  • 未知 sessionId 返回 404。
  • 缺失 sessionId 返回 400。
  • API 只返回摘要,不返回完整內容。

摘要字段包括:

seq
id
時間
最多 140 字符摘要
是否含圖片

插件不寫 localStorage / cookie,卸載即無痕。

適用場景與注意

適合以下場景:

  • 長會話中快速回看自己發過的消息。
  • 分頁歷史尚未渲染時,通過刻度定位未加載的用戶消息。
  • 用懸停摘要確認目標消息,再用點擊跳轉。
  • 用軌道拖動快速掃讀整段會話。

注意以下邊界:

  • MVP 暫不支持標註 AI 消息、錯誤、分支。
  • MVP 暫不支持按文本搜索刻度。
  • MVP 暫不支持持久化開關,導航條始終根據狀態自動顯示或隱藏。
  • 宿主路由不可達,例如 403、404 或網絡錯誤時,插件會退回只顯示已加載消息的刻度。
  • DSH 插件以當前 dsh 進程權限運行;安裝前應檢查源碼和 MIT 許可證。

鏈接

  • GitHub 倉庫:https://github.com/AFAP/dsh-message-minimap
  • 目錄頁:已覈實資料未給出具體 URL,這裏不列出不確定的地址。
羽毛球分组比赛记分
小程序二维码

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

小夜