dsh-plugin-orchd:在 DSH 右侧栏只读查看 orchd 任务与依赖

前言

用 DeepSeek Harness(DSH)做项目会话时,对话在左侧,项目里的任务状态往往在终端或别的窗口里。若项目用 orchd 管任务与依赖,要在聊天和看板之间来回切,上下文容易断。下面介绍社区插件 dsh-plugin-orchd(维护者 7bder,分类:客户端):在 DSH 右侧栏挂一块只读面板,随当前会话的项目展示 orchd 的任务看板、依赖图、想法与审查时间线;无需为插件单独配项目路径,由会话推导项目。面板不提供 claim、done、review 等写操作,避免在 UI 里误改任务状态。

这是什么

dsh-plugin-orchd 把 orchd 的项目状态带进 DSH 右侧栏的只读视图。打开一个项目会话后,面板会检测该项目是否已接入 orchd:已安装则同屏显示看板、依赖图、想法与审查时间线;未安装则给出接入入口,而不是静默失败。

插件当前版本为 0.1.0,许可证 MIT。源码与说明见 GitHub:7bder/dsh-plugin-orchd;社区目录页:skillhub.cn/plugins/7bder/dsh-plugin-orchd。

面板里有什么

四态检测

面板会先判断 orchd 处于何种状态,并给出具体原因,而不是笼统的「出错了」:

  • 未安装
  • 未初始化
  • 就绪
  • 异常

看板与任务详情

看板展示状态分布、待办 / 在途 / 终态;状态条可作为筛选器,并支持关键词、筛选与排序;任务较多时支持 800+ 任务的虚拟滚动。

点进单条任务可看:目标、验收标准、验证命令、写范围、上游依赖与下游引用(可跳转),以及审查事件时间线。

依赖图

以 DAG 形式展示依赖关系,可在「聚焦闭包」「活跃子图」「含终态全图」等视图间切换。环、自依赖与悬空上游会显式标注,不会静默省略。

想法(IDEAS)

只读想法看板:按状态分组、与归档任务对照,并提供可复制的推进命令(仍由你在项目侧执行,面板不写账本)。

接入入口

若项目尚未安装 orchd,面板提供两条路:复制命令自行安装,或让当前会话的 agent 代为安装(注入前会先展示将要注入的文本)。

只读保证

只读是硬约束,不是文案:

  1. 命令白名单 fail-closed:不在白名单内的子进程调用不会 spawn,被拒时记结构化日志。
  2. 子进程环境剥掉会话身份,读命令不会带上会被引擎当成「有人在动任务」的变量。
  3. 不直读账本、不碰锁、不写项目文件;面板不做文件导出(诊断信息仅复制到剪贴板)。
  4. 开发期在真引擎、真账本、真 git 仓库上做只读冒烟:比对工作区哈希、账本事件数与 git status,要求零变更。

前置条件

安装插件前,请确认:

  • DSH 提供右侧栏面板席位(sidebarRightTabs + sidebar.right.pane.tab,session 作用域)。
  • 项目侧已装 orchd(项目根或容器主工作树下有 .orchd/)。未装时面板会走接入入口。
  • Python 3 在 PATH 上(依次探测 python / py -3 / python3,也可在配置里指定 pythonPath)。面板通过项目自带的 python <项目>/.orchd/__main__.py 调用引擎,插件不自带、不安装 orchd 引擎。

安装与启用

插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT 许可证。安装命令以 README 为准:

# 推荐:npm 包(Web 等 profile)
dsh plugin --profile web add dsh-plugin-orchd

DSH Desktop 请在应用自带终端(欢迎页里的终端)执行,不要加 --profile:

dsh plugin add dsh-plugin-orchd

无 npm 时,可用 GitHub 源(与市场收录前的等价路径):

dsh plugin --profile web add github:7bder/dsh-plugin-orchd

说明:Desktop 的 desktop profile 由应用托管,普通 dsh plugin --profile desktop ... 会被 CLI 拒绝(profile "desktop" is managed exclusively by the Electron application)。装好后需重启 DSH——宿主侧模块不热替换;重启后,会话 header 角落会出现开关,右侧栏出现「orchd 任务」页。被插件市场收录后,也可在设置里搜索一键安装。

卸载:

dsh plugin --profile web remove dsh-plugin-orchd

remove 后 profile 的 node_modules/ 里可能留下空目录,手工删除即可,不影响启动。

典型用法

  1. 在已接入 orchd 的项目里打开 DSH 会话。
  2. 重启 DSH 后启用右侧栏「orchd 任务」页(会话 header 角落的开关)。
  3. 在看板用状态条与搜索定位任务,点开详情查看验收标准与可复制的验证命令。
  4. 切换到依赖图核对环、悬空上游;在 IDEAS 视图只读浏览想法与归档对照。
  5. 若四态为「未安装」,按接入入口复制命令或预览 agent 注入文本后再决定是否安装 orchd。

面板只跟当前会话的项目,不做跨项目聚合与项目切换器;不做实时推送(引擎无常驻进程,依赖缓存与手动刷新);不向模型注册工具。

配置(可选)

配置写在 profile 的 cordis.patch.yml 中(id: orchd-tasks 对应行的 config: 下),均有默认值:

键 默认 说明
pythonPath null null 表示自动探测
requestTimeoutMs 20000 单次引擎调用超时(超时与引擎报错在 UI 上区分)
cacheTtlMs / pollTtlMs / detectTtlMs 5000 / 30000 / 10000 看板 / 轮询 / 四态检测缓存 TTL
maxProjectContexts 8 每会话项目上下文 LRU 上限
orchdCoreRepo null 接入入口展示的引擎仓库地址
allowRoots [] 调试用白名单;空表示不额外收敛

数据经插件注册的 8 条同源路由提供(会话绑定,前端只传 sessionId):GET /orchd/api/context、board、task、graph、history、ideas,以及 POST /orchd/api/install-entry、install-inject(注入需显式确认)。前缀外的路径返回 404。

适用谁、注意什么

适合已经在项目里用 orchd 管任务、又希望在 DSH 会话旁一眼看到看板与依赖图的开发者。若你需要在 DSH 里直接改任务状态,应继续用 orchd CLI 或项目约定的工作流,本插件 deliberately 不提供写入口。

社区插件目录(如 skillhub.cn)与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,按需选用并自行审计代码即可。

结尾

dsh-plugin-orchd 把 orchd 的任务看板、依赖图、想法与审查时间线收进 DSH 右侧栏,只读、会话绑定、无额外项目配置。进一步了解可打开 目录页 与 GitHub 仓库;引擎本体见 7bder/orchd-core。

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

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

小夜