dsh-cnboard
v0.1.0
Published
dshweb 的 CNB 平台管理插件:以任务集为数据源,跨组织/跨仓库聚合 Issue/PR 任务看板;规划流水线与云环境管理。
Maintainers
Readme
DSH-CNBoard
项目地址:https://cnb.cool/xqitw/dsh-cnboard
dsh(deepseek-harness)Web 的 CNB 平台管理插件:以 CNB 任务集为数据源,跨组织、跨仓库聚合 Issue/PR 任务看板。配置仅需两项——CNB token + 任务集路径。
设计文档(含模块扩展规划:流水线管理 M2、云环境管理 M3、NPC 联动 M4)见仓库 issue: #2 总体设计 · #3 页面布局设计 · #4 API 接入基线
功能(M1 看板 MVP)
- 跨仓库聚合看板:任务集数据范围内的全部 Issue/PR 混排一板,状态(待处理/进行中/待评审/已完成)、优先级、仓库三种分组自由切换
- 卡片信息:类型着色(蓝=Issue / 紫=PR)、优先级章(P0 红 / P1 橙)、标签、处理人/评审人头像、评论数、相对更新时间;PR 卡含「可合并」标记
- 过滤与搜索:类型过滤(全部/Issue/PR)+ 标题/仓库关键字
- 详情抽屉:字段总览 + 操作位(评论/关闭/合并/召唤 NPC,M1.5 开放)+「在 CNB 打开」直达
- 配置与体检:token + 任务集两项设置;保存即做 scope 体检(任务集/Issue/PR/流水线/云环境五类逐项探测),缺 scope 时明确提示缺哪几项、去哪补
- 主题兼容:颜色全部使用宿主
--dsw-*设计令牌,亮/暗/第三方主题自适应;UI 挂载于官方settings.section扩展点
安装
作为 dsh profile bundle 使用,推荐用 dsh 官方命令:
dsh plugin --profile web add dsh-cnboard该命令会在 profile 目录执行 pnpm add,检测到包的 dsh.bundle 声明后自动加入 dsh.profile.bundles,重启 dsh 后设置页出现「CNBoard」页签。
配置
进入 dsh Web 设置 → CNBoard:
- token:CNB 访问令牌(创建入口)。授权范围建议勾选
mission-manage及 issues/pulls 相关读写;保存后插件自动做 scope 体检并提示缺失项 - 任务集:看板数据源,形如
xqitw/missions。数据范围(关联哪些仓库)在 CNB 任务集设置中维护,插件不重复建设
配置落盘 ~/.dsh/cnboard.json;也可经 profile 的 cordis.patch.yml 行配置或环境变量 CNB_TOKEN 提供(优先级:设置页 > profile 配置 > 环境变量)。
架构
浏览器(settings.section 页签,lib/client.js 手写 __ModuleLoader__ 模块)
└─ fetch /cnboard-api/*(同源)
dsh Host(src/index.ts,tsc 构建 lib/index.js)
├─ /cnboard-api/state 任务集 resources 聚合(游标翻页全量拉取 + 规范化)
├─ /cnboard-api/config 配置读写(token 不回传原文)
├─ /cnboard-api/healthcheck scope 体检
└─ CNB 接入:官方 SDK node-cnb(错误统一转换为 {status, errcode, errmsg})设计约定:
- token 只存 Host 半区,浏览器不接触
- 聚合读走任务集接口(平台代做跨仓库查询),单仓库写操作(M1.5)回落 issues/pulls 端点
- POST 仅接受白名单方法、有界 JSON body;安全立场与 dsh-skills-manager 一致(宿主 webserver 既有信任边界)
开发
npm install --legacy-peer-deps
npm run build # tsc,产出 lib/index.js(lib/client.js 为手写源码,直接维护)
npm run lint:md
npm pack --dry-run本地调试:dsh plugin --profile web add link:/path/to/dsh-cnboard 后重启 dsh。
授权范围(scope)速查
| 能力 | 需要的 scope |
|---|---|
| 看板(任务集聚合查询) | mission-manage:r |
| Issue/PR 读写操作(M1.5) | issues / pulls 对应读写 |
| 流水线管理(M2) | build 对应读写 |
| 云环境管理(M3) | workspace 对应读写 |
以插件内体检结果与 CNB 报错信息为准(官方文档未列出 scope 全集)。
