前言¶
在 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。