前言¶
在 DeepSeek Harness(DSH)里做项目开发时,Issue 往往分散在 GitHub 网页和对话之间:要查状态得切浏览器,要把「待办 / 进行中」和仓库里的 issue 对齐,又缺少和当前聊天项目绑定的视图。社区插件 dsh-github-kanban(维护者 xiaohui-zhangxh,分类:客户端)把 GitHub issue 收进 DSH Web 左侧栏的「Issue 看板」,用本地 gh CLI 读数据、SQLite 缓存,无第三方服务、无遥测;并注册智能体工具,可在对话里领取、移动待办组里的任务。
这是什么¶
一句话:面向 DSH 桌面版或 dsh web 的 GitHub issue 看板插件——左侧栏入口、中央看板、拖拽分组、右侧半屏详情与带动画的关系方块图。
插件在 SkillHub 目录 可查(星标 0);源码与说明见 GitHub 仓库,许可证 MIT,当前 package 版本 2.3.0(以仓库为准)。
核心功能¶
看板与收件箱¶
- 左侧栏「Issue 看板」占据主面板,可随时切回对话;入口图标右上角显示当前范围内未关闭 issue 数量(收起侧栏仍可见)。
- 「GitHub 收件箱」只显示未关闭 issue;默认「只看自己的」(当前
gh登录账号创建或被指派的 issue),顶部可切换「我的 / 全部」。 - 顶部可按仓库筛选;默认项目跟随最后一次离开的聊天会话所属项目的 GitHub remote;聊天项目无 GitHub 关联时保持当前项目。也可在
cordis.patch.yml里配置初始repo,或在面板顶部改仓库名(持久化到状态文件)。
待办分组与拖拽¶
- DSH 待办分组默认四列:待办 / 进行中 / 待完结 / 积压,可新建、重命名、删除。
- 从收件箱把 issue 拖进分组即创建待办任务;任务卡可在分组间拖动;拖回收件箱即移出。
- GitHub 上已关闭或删除的 issue,同步时会从待办分组(含「待完结」)自动移除;手动拖入已关闭 issue 也会在下一次同步时被清掉。
详情、Markdown 与关系图¶
- 点击 issue 从右侧展开详情面板(约半屏),含 issue 信息、GitHub 链接、正文摘要与关系图;亮/暗色跟随 DSH 主题。
- 看板与 GitHub 视图中的 issue/PR 正文、评论按 Markdown 渲染(纯 React,不用 innerHTML)。
- 关系方块图:父/子上下的、阻塞/依赖左右的布局,箭头流动虚线表示上游 → 下游;节点与关系行标注完成状态,并用与看板列一致的分组颜色。打开 issue 先用本地缓存渲染,关系区域骨架屏 + 后台 GraphQL 补全;数据落在 SQLite
relations缓存后毫秒级返回。可「放大」关系图,Esc 或点背景还原。
筛选、缓存与同步¶
- 收件箱「筛选」:条件行之间为且,同行多选标签为或,最多 6 行,可按标签搜索;筛选按仓库记在浏览器本地。
- Host 用
node:sqlite存本地数据;首次全量拉取后,刷新按 issue 最后更新时间增量请求since=<上次同步>。看板与关系图先读缓存再后台校验;Client 收到stale后约 1.2s 再拉最终结果。另有 5 分钟自动刷新与手动刷新(热更新,不重载页面)。
对话集成¶
注册三个智能体工具,可在对话中说「领取待办组里的任务」等:
| 工具 | 作用 |
|---|---|
github_kanban_board |
读取当前看板:仓库、范围、分组与组内任务、收件箱统计 |
github_kanban_claim |
从分组领取任务:标记领取人、移到「进行中」,返回标题/链接/标签/正文摘要 |
github_kanban_move |
把 issue 加入或移动到指定分组 |
环境要求¶
- DSH(桌面版或
dsh web,需 Web GUI) - 本机已安装并登录 GitHub CLI:
gh auth login,token 至少具备repo读权限 - 本机
git(用于把聊天会话的项目目录解析成 GitHub 仓库)
安装与启用¶
下面步骤来自仓库 README;插件以当前 DSH 进程权限运行,安装前请自行审阅源码与 MIT 许可证。
1. 取得插件目录¶
将仓库放到本机固定路径(README 示例为克隆到本地目录,路径按你的环境替换)。
2. 安装到当前 DSH profile¶
在 DSH 对话里让智能体执行(target 换成你的绝对路径):
plugin_manager({ action: 'install_bundle', target: '/absolute/path/to/dsh-github-kanban' })
安装为本地 bundle 软链,目录内改动即改即生效。完成后刷新 DSH 页面,左侧栏应出现「Issue 看板」图标。
手动安装(等价):在 ~/.dsh/profiles/<profile>/cordis.patch.yml 追加:
- insert:
- id: github-kanban
name: '@local/dsh-github-kanban'
config:
issuesLimit: 300
并把该 bundle 加入 profile 的 dsh.profile.bundles / dependencies(指向本地目录)。
配置项¶
- insert:
- id: github-kanban
name: '@local/dsh-github-kanban'
config:
issuesLimit: 300 # 可选,单次最多拉取未关闭 issue(50..1000,默认 300)
repo: owner/name # 可选,初始仓库;不填则由聊天项目识别或面板手选
典型用法¶
- 点左侧栏「Issue 看板」。
- 顶部选择仓库(从带 GitHub remote 的聊天项目进入时会自动带出)。
- 从「GitHub 收件箱」把 issue 拖到某个待办分组。
- 点卡片查看详情和关系图;在对话里用自然语言让智能体调用
github_kanban_claim等工具接单或移动任务。
本地状态与缓存(均在 $DSH_PROFILE_DIR):
github-kanban.state.json:分组、任务、看板范围、最近活跃会话等github-kanban.cache.json:issue 缓存(仅 OPEN,TTL 5 分钟)
数据只在本机,插件不上传信息。
适用场景与注意¶
适合:已在 DSH Web 里开发、Issue 在 GitHub 上管理、希望看板与当前聊天仓库对齐、并希望通过对话领取/移动任务的开发者。
限制(README 已说明):
- 增量同步依赖 issue 的
updated_at;已删除 issue 极端情况下需清缓存全量同步。 - 关系图仅一跳(父/子、正文
#N、阻塞/依赖关键词),不索引评论级引用。 gh未登录或触发速率限制时,看板保留已有分组与任务并显示错误横幅。
DSH 生态强调「一切皆插件」;SkillHub 目录为社区站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-github-kanban 把 GitHub issue 收件箱、DSH 四列待办、拖拽工作流、SQLite 增量缓存和动画关系图收进同一 Web 面板,并用三个智能体工具接进对话。进一步了解可打开 SkillHub 插件页 与 GitHub 仓库 README。