dsh-github-sidebar:为 DeepSeek Harness 增加的 GitHub 侧边栏插件

前言

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 进程并刷新页面,客户端插件集合会在启动时扫描并加载。

使用步骤

  1. 打开会话:启动 DSH Web 会话。
  2. 查看侧边栏:右侧的 details 列会自动展开,显示 GitHub Sidebar。
  3. 浏览仓库:在上方面板浏览按星标排序的主题仓库,使用分页按钮翻页。
  4. 管理讨论:
    • 在下方面板切换排序方式(最新/评论/置顶)。
    • 如果需要使用 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

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

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

小夜