dsh-plugin-trellis-statusline: 在 Web 界面显示 Trellis 任务状态

前言

DeepSeek Harness (DSH) 的 Web 聊天界面目前缺乏类似终端中 statusline.py hook 的状态反馈机制。在多任务协作场景下,开发者需要直观地了解当前工作区正在进行的任务。dsh-plugin-trellis-statusline 插件在 Web 界面实现了这一功能,将终端中的任务状态栏能力移植到了浏览器中。

插件介绍

dsh-plugin-trellis-statusline 是一个 DSH Web 客户端插件,由 HenTaiCJN 维护。它的核心作用是在 dsh 网页聊天界面中显示当前工作区的活跃 Trellis 任务,包括父/子任务的角色标记以及可点击的任务树结构。

核心功能

  1. 会话头部展示:在会话预设选择器右侧显示持久性任务药丸,始终可见。
  2. 新建会话视图:在发送第一条消息前,药丸出现在编辑器停靠线上方,与使用情况药丸共享同一行。
  3. 任务格式化:药丸内容格式为 [priority] title · status。
  4. 任务角色标记:自动标记任务在树结构中的角色,显示“父任务”或“子任务”。
  5. 可点击树形结构:当任务属于树结构时,点击药丸会弹出下拉菜单,展示缩进的树形结构,并高亮当前会话的任务。
  6. 只读模式:插件不写入 Trellis 数据,也不启动、切换或归档任务。
  7. 工作区统计:当会话没有自有任务但工作区有活跃任务时,显示“工作区 N 个活动任务”。

安装与启用

插件安装无需配置。执行以下命令即可添加插件:

dsh plugin --profile web add github:CJ-SH/dsh-plugin-trellis-statusline

安装后需要重启 dsh。插件在启动时加载,重启可以结束当前运行的代理进程,确保状态正确刷新。

典型用法

插件根据任务状态和角色展示不同的表现形式:

[P2] Add the importer · 进行中
[P1] Release 0.2 · 进行中 · 父任务
[P2] Wire the importer · 进行中 · 子任务
工作区 3 个活动任务
  • 独立任务:无角色标记,点击无反应,不占用 Tab 键焦点。
  • 树根任务:显示“父任务”标记。
  • 子任务:显示“子任务”标记。
  • 无自有任务:显示工作区活跃任务数量,不显示标题或角色。

适用场景与注意

  1. 环境要求:
    • 需要使用 dsh 0.2.0-rc.1 或更高版本(0.2.x 系列)。
    • 需要启用 Web profile。
    • 运行环境需要 Node.js ^22.19.0 或 >=24.0.0。
    • 当前工作目录必须包含 .trellis/ 文件夹(需先通过 trellis init --dsh 初始化)。
  2. 运行机制:
    • 插件运行时不需要 Python 和 trellis CLI,仅读取 Trellis 生成的 JSON 文件。
    • 插件不存储任何数据。
    • 标题显示会被截断至 48 个字符。
  3. 安全提示:
    • 插件为只读模式,不会对 Trellis 执行任何写操作或任务管理操作。

总结

dsh-plugin-trellis-statusline 通过在 Web 界面引入状态栏功能,解决了多任务协作中状态可见性的问题。它利用 10 秒的轮询机制和会话切换时的立即刷新,确保任务状态(如 task.py start / task.py archive)能够及时反映在界面中。

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

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

小夜