前言¶
DeepSeek Harness (DSH) 的 Web 聊天界面目前缺乏类似终端中 statusline.py hook 的状态反馈机制。在多任务协作场景下,开发者需要直观地了解当前工作区正在进行的任务。dsh-plugin-trellis-statusline 插件在 Web 界面实现了这一功能,将终端中的任务状态栏能力移植到了浏览器中。
插件介绍¶
dsh-plugin-trellis-statusline 是一个 DSH Web 客户端插件,由 HenTaiCJN 维护。它的核心作用是在 dsh 网页聊天界面中显示当前工作区的活跃 Trellis 任务,包括父/子任务的角色标记以及可点击的任务树结构。
核心功能¶
- 会话头部展示:在会话预设选择器右侧显示持久性任务药丸,始终可见。
- 新建会话视图:在发送第一条消息前,药丸出现在编辑器停靠线上方,与使用情况药丸共享同一行。
- 任务格式化:药丸内容格式为
[priority] title · status。 - 任务角色标记:自动标记任务在树结构中的角色,显示“父任务”或“子任务”。
- 可点击树形结构:当任务属于树结构时,点击药丸会弹出下拉菜单,展示缩进的树形结构,并高亮当前会话的任务。
- 只读模式:插件不写入 Trellis 数据,也不启动、切换或归档任务。
- 工作区统计:当会话没有自有任务但工作区有活跃任务时,显示“工作区 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 键焦点。
- 树根任务:显示“父任务”标记。
- 子任务:显示“子任务”标记。
- 无自有任务:显示工作区活跃任务数量,不显示标题或角色。
适用场景与注意¶
- 环境要求:
- 需要使用 dsh 0.2.0-rc.1 或更高版本(0.2.x 系列)。
- 需要启用 Web profile。
- 运行环境需要 Node.js ^22.19.0 或 >=24.0.0。
- 当前工作目录必须包含
.trellis/文件夹(需先通过trellis init --dsh初始化)。
- 运行机制:
- 插件运行时不需要 Python 和 trellis CLI,仅读取 Trellis 生成的 JSON 文件。
- 插件不存储任何数据。
- 标题显示会被截断至 48 个字符。
- 安全提示:
- 插件为只读模式,不会对 Trellis 执行任何写操作或任务管理操作。
总结¶
dsh-plugin-trellis-statusline 通过在 Web 界面引入状态栏功能,解决了多任务协作中状态可见性的问题。它利用 10 秒的轮询机制和会话切换时的立即刷新,确保任务状态(如 task.py start / task.py archive)能够及时反映在界面中。