前言¶
在使用 DeepSeek Harness (DSH) Web 端进行开发时,侧边栏往往会积累大量会话。手动管理这些会话的可见性和优先级容易导致视线混乱。dsh-session-activity 插件通过活动优先级对会话进行自动分组,帮助开发者快速聚焦当前需要的上下文。
核心功能¶
该插件基于会话的 Last updated 时间戳,将可见会话划分为四个层级:Hot(热)、Warm(温)、Cool(冷)、Cold(冷)。系统会持续监控会话状态,并根据配置的规则动态调整分组。
排序逻辑遵循以下优先级(由高到低):
1. 显式用户交互(等待用户操作)。
2. 已完成 AI 回复(等待用户继续)。
3. 普通空闲会话。
4. AI 正在运行或子代理持续运行中的会话。
除了自动分组,插件还提供了以下能力:
- Focus 模式:提供一个持久按钮,隐藏除 Hot 以外的所有分组,仅显示活跃会话。
- 搜索与展开:Focus 模式下仍可搜索所有会话;当前会话所在的分组会自动展开,空组会被隐藏。
- 保留操作:保留会话的打开、重命名、分叉、归档、工作区创建/重命名/移除以及新建会话等原生操作。
安装与启用¶
使用 DSH 的命令行工具安装插件:
dsh plugin --profile web add dsh-session-activity
安装完成后,重启 dsh web 进程并刷新页面,插件即可生效。它会通过 DSH 的插槽优先级机制覆盖内置的工作区浏览器。
配置¶
配置文件位于 $DSH_HOME/session-organizer.json。通过 Settings → Session Organizer 菜单进行编辑,保存后侧边栏会立即更新。
默认配置如下:
config:
hot:
label: Hot
within: 3h
expanded: true
warm:
label: Warm
within: 1d
expanded: false
cool:
label: Cool
within: 2d
expanded: false
cold:
label: Cold
expanded: false
focus:
defaultEnabled: false
refreshEvery: 1m
配置说明:
- within 参数设定分组的时间阈值,单位支持 m、h、d、w。
- 时间阈值必须满足 hot.within < warm.within < cool.within。
- 边界判定为“包含在较旧的组中”:Hot 为 <,Warm 为 ≤ 且 <,以此类推。
- refreshEvery 最小值为 1m,控制分组计算频率。
典型用法¶
- 调整分组阈值:根据实际使用习惯,在设置中修改
hot.within(如 2 小时)或warm.within(如 6 小时),以改变会话活跃度的判定标准。 - 手动排序:在会话的操作菜单中,使用键盘可访问的
Move earlier和Move later功能,对同一层级内的会话进行微调排序。 - 添加工作区:在侧边栏中通过
Add workspace功能,利用 DSH 的browse能力在应用内浏览目录,无需依赖操作系统的文件选择器。
适用场景与注意¶
该插件适合需要在 Web 端长时间运行 DSH、管理多个并发会话的开发者。
注意:
- DSH 拥有 Last updated 字段的持久化权限,插件仅在此字段基础上进行投影计算,不会修改 DSH 的会话摘要。
- 子会话(Subagent child Sessions)不会出现在顶层列表中,这与内置的工作区浏览器行为一致。
- 插件遵循 MIT 许可证。
结尾¶
dsh-session-activity 通过自动化的分组和排序逻辑,简化了 DSH Web 端侧边栏的会话管理。更多细节可查看社区目录或源码仓库。