dsh-session-sidebar:给 DSH 侧边栏加一个收件箱式活动视图

前言

在 DeepSeek Harness(DSH)里同时开很多会话时,原生侧边栏只按工作区把列表铺开。哪个会话还在后台跑、哪个卡在审批等你处理、哪个跑完了还没点开看,往往得挨个点进去才知道。dsh-session-sidebar(v0.1.0,MIT,维护者 QuentinCrane)参考 Codex 桌面端的侧边栏设计,用两个东西解决这件事:集中看运行状态和未读消息的「活动视图」,以及排在工作区列表上方、可跨项目整理常用会话的「置顶区」。它同时支持 DSH Web 和 Desktop,安装后自动接管侧边栏,不用额外改配置文件。

这是什么

一句话定位:给 DSH 的会话列表加收件箱式的状态分流,再加上跨工作区的置顶、树状分组、拖拽排序和全文搜索。项目托管在 GitHub(QuentinCrane/dsh-session-sidebar),星标数不重要,README 和包里给出的功能说明比较完整。下面按功能、安装、用法、注意事项介绍。

核心功能

下面逐项列出已经核实的能力,每项对应 README 中的具体描述。

活动视图(Activity View)

点侧栏顶部的铃铛,或按 ⌥⌘U(macOS)/ Ctrl+Alt+U(Windows、Linux)即可切换。视图最上面的「优先级」区域集中三类会话:正在运行的(带子任务并发数)、卡在 待审批 / 计划待审 / 待回答 等你处理的、跑完还没点开过的未读会话。点「优先级」右侧的 ...,还可以把置顶或带定时任务的会话放进来,开启「仅未读与运行中」,或一键「全部标为已读」。

优先级下面按今天、昨天、星期几、具体日期排列各工作区的最近对话,每条带所属工作区名称和两行最新回复预览。默认快捷键若与其他插件冲突,可在 DSH 快捷键设置里搜「活动视图」修改。

会话置顶:三种模式

点侧栏右上角设置按钮,可在三种置顶方式之间切换:

  • 按会话选择(hybrid,默认):每条会话的 ... 菜单里同时有「置顶到置顶区」和「在工作区置顶」,两边随时互移。
  • 独立置顶区(space):所有置顶统一收进工作区列表上方的置顶区,每条后面标出来自哪个工作区。
  • 工作区内置顶(workspace):隐藏顶部置顶区,与原生行为一致。

默认模式下,会话放到顶部置顶区后,原工作区默认仍保留。不想两边重复看到,点「置顶区」右侧 ... 勾上「置顶后从原工作区隐藏」;同一菜单还能改悬停图钉的默认置顶位置,以及无置顶时是否保留空置顶区标题。

分组、排序与全文搜索

常规侧边栏支持三种视图:按工作区、按工作区树(按目录路径自动把子目录缩进到父工作区下)、单列表。置顶区、工作区内部或单列表里,按住会话行上下拖动即可切到手动排序并记住顺序,也可在右上角设置里切回按最近更新排序。

顶部搜索框即时过滤会话标题和工作区名,停顿一下还会全文搜索历史聊天内容(Esc 清空退出)。重命名、分叉会话、手动标为已读/未读、复制 Session ID、归档筛选、新建工作区时的目录选择弹窗等原有操作都保留;归档正在运行的会话前会先弹窗确认停止。

Agent 工具 activity_pins

插件给模型注册了 activity_pins 工具,与前端侧边栏读写同一份状态,可以在对话里直接用自然语言操作,例如「把所有未读会话标成已读」或「把当前会话置顶到置顶区并在原工作区隐藏」。支持的 action 包括:

  • list_activity:列出各工作区会话的运行状态、未读标记和最新回复摘要。
  • list_pins:按当前顺序返回所有已置顶会话及其所在位置(space / workspace)。
  • status:查看当前置顶模式、默认置顶目标、已读基线和活动视图设置。
  • pin_space / pin_workspace:置顶到顶部置顶区或在所属工作区内。
  • unpin:取消置顶,同步更新原生 workspaceRegistry。
  • set_pin_mode:修改全局置顶模式与置顶区显示选项。
  • mark_read / mark_unread / mark_all_read:手动标记单条或全部已读/未读。
  • set_activity_prefs:修改活动视图筛选偏好。

安装与启用

Web 端和 Desktop 端的 profile 是分开的,用哪边就装哪边。安装命令来自插件 README:

# DSH Web
dsh plugin --profile web add github:QuentinCrane/dsh-session-sidebar

# DSH Desktop
dsh plugin --profile desktop add github:QuentinCrane/dsh-session-sidebar

装完后刷新页面(Web)或重启客户端(Desktop),插件直接接管侧边栏,无需改配置。

本地调试源码时用 link: 指向仓库绝对路径(路径含空格或 & 时记得加引号):

dsh plugin --profile <profile> add "link:/path/to/dsh-session-sidebar"

Desktop 上的一点注意事项:刚装好的 DSH Desktop 需要先打开一次客户端让它生成默认 profile,完全退出后再运行 Desktop 自带的 dsh 命令;如果终端里找不到 dsh,可在应用菜单的 Manage dsh Command 里开启。README 给出了官方说明链接。

状态存放与卸载

置顶位置、手动排序和已读时间戳保存在 Host 的 storageDomain(dsh-session-sidebar)里,只有存储域打开失败时才退回内存模式。如果重启 DSH 后置顶或已读状态丢失,先检查当前运行的 DSH profile 和安装插件时指定的是否一致。

卸载方式是在对应 profile 的插件列表里移除 dsh-session-sidebar(或删掉配置中由 cordis.patch.yml 注入的插件条目),刷新或重启 DSH 后恢复原生侧边栏。已保存的置顶和已读记录会保留在存储域里,以后重新启用仍可接着用。

适用场景与注意

适合在 DSH Web 或桌面端维护多个工作区、同时跑多个后台会话的开发者。插件同时提供前端界面和给 Agent 用的 activity_pins 工具,手动整理和让模型代为整理两种方式都能用。

注意两点。一是 Web 与 Desktop 的 profile 相互独立,只装一边不会在另一边生效,这是 README 中专门列出的常见误区。二是插件随当前 dsh 进程运行,拥有该进程的权限,安装前应检查源码与许可证本项目为 MIT。本文只转述 README 和包信息,未实际运行验证。

结尾

这套侧边栏的价值在于把「找哪个会话该处理」从逐个点开变成一眼分流,同时保留了工作区树、拖拽排序和全文搜索这些整理手段。目录页在 skillhub.cn(QuentinCrane/dsh-session-sidebar),源码在 github.com/QuentinCrane/dsh-session-sidebar,许可证 MIT。

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

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

小夜