DeepSeek Harness 的原生任务看板。
四列看板 · Host 持久化 · 不是 iframe
All projects 视图。问题与阻塞会自动汇聚到 Needs you。
## 给 agent 一个队列,给你一个看板 DSH 看板是 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 的**原生 Cordis 插件**。它注册的是真实的 `main` 页面和 `sidebar.panellist` 入口,不是一个塞进 iframe 的网页。 项目、任务、评论、附件和活动都存在 Host 的 `storageDomain` 里。浏览器不是数据源。 > **Chat 管会话,看板管任务。** > DSH Kanban 给 agent 一个不随会话结束而消失的任务层。 这个看板围绕「人 + agent」的循环设计: 1. agent 创建任务、记录阻塞,或向你提问。 2. 卡片自动进入 **Needs you**。 3. 你在卡片里回答、批准、拒绝、清除阻塞、评论。 4. 任务进入 **Done**,活动记录完整保留。 > 一个看板,一套数据模型,不用再开第二个标签页同步。 ## ✨ 能力 | | | | --- | --- | | **四列看板** | Backlog、Running、Needs you、Done;拖拽换列/排序,列可折叠 | | **Needs you** | 自动汇聚未回答问题、阻塞、待审核;优先级:问题 → 阻塞 → 审核 | | **卡片内审批** | 选择选项、备注、Approve / Reject;批准进 Done,拒绝回 Backlog | | **任务抽屉** | 状态、优先级、标签、描述、阻塞、链接、请求输入、评论、附件、活动 | | **Host 持久化** | `storageDomain` 记录刷新/重启不丢;附件走 DSH attachment | | **归档与只读** | 项目/任务归档、恢复;归档项目只读并显示恢复横幅 | | **搜索与筛选** | 标题/描述/项目/标签搜索;项目、优先级、标签、负责人筛选 | | **DSH 原生体验** | 主题 token、中英文 locale、焦点管理、减少动画 | ## 🎬 动起来
打开卡片 → 在抽屉里回答问题 → Approve → 卡片自动进入 Done。
## 🚀 快速开始 **要求:** DSH `0.2.1-rc.2` 或更新版本、Node.js 22+、pnpm 10+。 ```bash git clone https://github.com/SilasSolivagus/dsh-kanban.git cd dsh-kanban pnpm install pnpm check ``` 然后: 1. 打开 **DSH → 设置 → 插件**。 2. 选择 **安装本地 bundle**,选中这个目录(包含 `package.json` 的那一层)。 3. 启用 `@local/dsh-kanban`。 4. 刷新 DSH,点击侧边栏的 **看板 / Kanban**。 profile 里会保留一个指向该目录的 `link:`,升级时: ```bash git pull pnpm install pnpm check ``` 然后在插件页禁用再启用一次 `@local/dsh-kanban`,刷新页面。 > `pnpm check` 会构建 `index.js` / `client.js` 并运行完整测试。两个构建产物已提交,普通安装不需要自己构建。 ## 🧭 架构 ```mermaid flowchart LR subgraph Web["DSH Web UI"] slot["main + sidebar slots"] ui["Board / Drawer / Dialogs"] end subgraph Host["DSH Host"] api["/kanban-api"] store["KanbanStore"] domain[("storageDomain")] files[("attachments")] end slot --> ui ui -->|"JSON + task version"| api api --> store store --> domain store --> files ``` - **Client:** 注册 slot/locale,渲染看板、抽屉和对话框,调用 `/kanban-api`。 - **Host:** 负责领域数据、路由、校验和乐观并发。每次任务写入都带 `version`,旧版本写入返回 `TASK_VERSION_CONFLICT`(HTTP 409)。 - **存储:** 项目/任务/评论/活动在 `storageDomain`;附件字节走 `ctx.attachments`;只有列折叠偏好用 localStorage。 ### 为什么不用 iframe | | iframe 看板 | DSH 看板 | | --- | --- | --- | | 主题与语言 | 容易和应用不一致 | 原生 token + locale | | 持久化 | 浏览器 localStorage | Host `storageDomain` | | 附件 | 桥接麻烦 | DSH attachment 服务 | | 导航 | 嵌套页面 | `main` + `sidebar.panellist` | | 审批 | 独立流程 | 真实 Needs you 队列 | ## 📸 任务抽屉