dsh-github-kanban:在 DSH 裏用看板管理 GitHub Issue

前言

在 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   # 可選,初始倉庫;不填則由聊天項目識別或面板手選

典型用法

  1. 點左側欄「Issue 看板」。
  2. 頂部選擇倉庫(從帶 GitHub remote 的聊天項目進入時會自動帶出)。
  3. 從「GitHub 收件箱」把 issue 拖到某個待辦分組。
  4. 點卡片查看詳情和關係圖;在對話裏用自然語言讓智能體調用 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。

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

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

小夜