前言¶
DeepSeek Harness (DSH) 採用了“一切皆插件”的架構,方便開發者擴展功能。在開發或調試過程中,開發者經常需要在對話窗口內直接查看 GitHub 倉庫或討論區的內容。原生 DSH 並未提供此類視圖,需要頻繁切換窗口或手動複製鏈接。
dsh-github-sidebar 是一個 DSH 客戶端插件,它將 GitHub 的信息面板直接注入到聊天窗口的右側 details 列中。該插件使用雙面板佈局,分別展示主題倉庫列表和倉庫討論列表,減少了上下文切換的時間成本。
功能概覽¶
該插件在 DSH 的右側 details 列中增加了一個 GitHub 側邊欄,包含兩個堆疊的面板:
- 上方面板(主題倉庫):列出指定 GitHub Topic 下的倉庫(默認爲
dsh-plugin),按星標數量降序排列,支持分頁瀏覽。該部分使用 GitHub 公共 REST 搜索 API,無需認證。 - 下方面板(討論):列出指定倉庫的討論(默認爲
deepseek-ai/deepseek-harness)。支持三種排序維度:最新(Newest)、評論最多(Most comments)、置頂優先(Pinned first),同樣支持分頁。該部分使用 GitHub GraphQL API,需要 Token 認證。 - 令牌管理:Token 在面板中輸入並存儲在
localStorage中,僅發送給api.github.com。
安裝與啓用¶
安裝此插件需要通過 DSH 的命令行工具進行。插件會同時安裝主機端包和註冊客戶端插件。
dsh plugin --profile web add dsh-github-sidebar
安裝完成後,需要重啓 dsh web 進程並刷新頁面,客戶端插件集合會在啓動時掃描並加載。
使用步驟¶
- 打開會話:啓動 DSH Web 會話。
- 查看側邊欄:右側的
details列會自動展開,顯示 GitHub Sidebar。 - 瀏覽倉庫:在上方面板瀏覽按星標排序的主題倉庫,使用分頁按鈕翻頁。
- 管理討論:
- 在下方面板切換排序方式(最新/評論/置頂)。
- 如果需要使用 GraphQL API 訪問討論,在面板中粘貼 GitHub Token 並點擊 Save。
配置與限制¶
目前該插件的所有默認參數(主題、倉庫、分頁大小)在面板中是硬編碼的。雖然 DSH 主機端在 cordis.yml 中暴露了 Config schema(包含 topic、owner、repo、pageSize),但瀏覽器端尚未讀取此配置,因此無法通過配置文件動態修改默認值。
需要注意以下限制:
- 詳情列獨佔:右側
details列是單槽位設計,GitHub 側邊欄會替換掉默認的調用/軌跡詳情。目前無法與默認詳情共存。 - API 請求量:討論列表按評論數或置頂排序時,會先獲取完整列表再在客戶端排序,這會產生更多的 GraphQL 請求。在瀏覽大型倉庫時,請注意 GitHub 的速率限制。
- 安全性:Token 以明文形式存儲在瀏覽器的
localStorage中。如果通過瀏覽器訪問,Token 暴露在源碼中。目前未實現服務端代理來隔離 Token。 - 狀態切換:詳情列的可見性由插件自動管理。在某些佈局切換(如會話切換)時,詳情列可能會短暫關閉,隨後由插件重新打開。
結語¶
dsh-github-sidebar 通過在 DSH 聊天窗口中直接嵌入 GitHub 瀏覽器,爲開發者提供了一種輕量級的上下文查閱方式。適合需要在對話中頻繁查看特定主題倉庫或討論區的 DSH 用戶。
插件詳情與源碼:Olympianz/dsh-github-sidebar