dsh-plugin-session-palette:用 ⌘K 打开 Spotlight 式会话面板

前言

在 DSH Web 客户端里切换会话,默认路径是按 ⌘K:展开侧边栏、展开搜索框、必要时还要等侧栏滑出,再把焦点落到左下角输入框。正文在中间,眼睛却要去找角落里的搜索——对高频切换来说,成本偏高。VS Code、Sublime、macOS Spotlight 一类工具的做法,是在视线所在处弹出浮层,而不是把用户拽到固定控件上。

dsh-plugin-session-palette 走的就是这条路线:接管 ⌘K,在屏幕上方弹出会话面板,列表、预览、改名和标签都在同一层完成。下面按「是什么 → 能做什么 → 怎么装 → 怎么用 → 注意什么」说明。

这是什么

维护者 kjx-talesofai 在 GitHub 开源的 DSH 客户端插件(分类:客户端)。一句话定位:DSH Web 的会话切换器——按 ⌘K 弹出 Spotlight 风格面板,而不是聚焦侧边栏搜索框。

插件要求 DSH ≥ 0.2.0-rc.1(package.json 中 engines.dsh 为 >=0.2.0-rc.1 <0.3.0-0)。当前 release 引用为 v0.8.1,许可证 MIT。它未发布到 npm,安装走 DSH 自带的「添加插件」对话框,不是 npm install。

核心功能

会话面板与排序

打开面板时不必先输入就能浏览会话;方向键选中,回车进入。列表按状态与时间分组,而不是只跟宿主默认的 updatedAt(最后一次用户输入的时间,模型回复不会推进它)。面板会优先体现「 live 状态」:需要你处理的、正在运行的、刚结束但未读的,再落到「今天 / 昨天 / 过去 7 天 / 过去 30 天 / 更早」等时间桶。

右侧预览高亮会话的最后一个 turn(你的提问与模型回复)。旧会话的 projection 未必已缓存,高亮停留约 0.2 秒后才拉取,快速划过不会并发请求。

四个视图

用 Tab / ⇧Tab 在视图间循环,每个视图回答不同问题:

视图 作用
最近(默认) 现在在发生什么:全部会话,按活跃度与时间分组
工作区 只记得目录、不记得标题:按工作区目录分组,最近碰过的组在前
置顶 你主动留下的:按置顶顺序,最近置顶在前
归档 已收起来的:行变暗,按最近活跃排序

置顶不是「抬到最近列表顶部」。置顶、归档有各自带计数的视图,计数提醒你里面还有会话;它们不会像钉在「今天」分组最上面那样占用「最近」首屏。在「最近」视图里,一行只落入一个最紧急的分组(例如「需要你」「活跃」,再才是按日期分桶);正在运行的置顶会话会落在「活跃」一类,而不是在「最近」里单独占一条「置顶」分组。

搜索范围

面板顶部的输入用于筛会话:匹配会话标题、工作区名、工作区目录路径(工作区改名后仍可按目录搜)。不做消息正文全文搜索;按话题找历史对话仍要用侧边栏搜索。

就地改名

两种方式:

  1. 面板里高亮某行,按 ⌘⇧R:顶部搜索框原地变成标题编辑框,回车保存、esc 取消;失败原因显示在输入框下方,成功提示可撤销。
  2. 已在打开的会话里,双击顶部标题改名(依赖宿主标题元素类名 crumbCurrent;若上游改 DOM,此路可能静默失效,⌘⇧R 不受影响)。

标题长度受 DSH 默认限制(约 80 字节,中文大约 26 字);超出时 host 会截断,提示以实际存下的标题为准。

标签(每会话最多 3 个)

⌘⇧T 打开标签选择器(在右栏,与搜会话的输入框分离)。标签为文字 + 可选 emoji + 颜色(颜色用主题 token)。数据写在插件 Config 的 volatile 字段,落在 profile 的 cordis.patch.yml,重启后仍保留。首次启用标签相关存储需重启一次 DSH(host 只在启动时读字段);未重启时选择器会提示需要重启,不会假保存。

点面板中的标签可筛选(多标签为「任一命中」);删除标签会确认并说明影响会话数,支持撤销。

其它快捷键(面板内)

  • ⌘⇧P:置顶 / 取消置顶
  • ⌘⇧⌫:归档 / 恢复
  • ⌘↑ / ⌘↓:第一条 / 最后一条
  • PgUp / PgDn:翻一屏
  • esc:关闭面板

浮窗约 1180px 宽、88vh 高(左列表约 60%、右预览约 40%)。分组标题吸顶,页脚显示当前位置(如 37 / 340);超过 7 天的行显示具体日期(如 9月12日)。

安装与启用

在 DSH 「添加插件」中填写下列之一(不需要 npm 账号,也无需发布到 npm):

github:kjx-talesofai/dsh-plugin-session-palette#v0.8.1

或使用本地克隆目录的绝对路径,例如:

/path/to/dsh-plugin-session-palette

装完后重启 DSH 桌面端(host 半边仅在启动时加载插件;浏览器半边随页面重载)。

卸载:在插件列表移除 dsh-plugin-session-palette 后重启,或使用「Restore All」恢复快捷键默认值;README 说明无需清理额外偏好。

典型用法

  1. 日常切换:按 ⌘K 打开面板 → ↑ / ↓ 选会话 → ⏎ 进入。侧边栏的搜索按钮仍可用(鼠标),只是 ⌘K 交给面板。
  2. 按目录找: Tab 切到 工作区 视图,在组内按最近顺序找。
  3. 长期跟踪: ⌘⇧P 置顶,在 置顶 视图按置顶顺序打开;暂时不用则 ⌘⇧⌫ 归档,在 归档 视图恢复。
  4. 整理标题与标签:列表里 ⌘⇧R 改名,或打开会话后双击顶部标题; ⌘⇧T 打标签,点标签筛一批相关会话。

适用场景与注意

适合谁:同时在跑很多 DSH 会话、频繁在「等你 / 运行中 / 刚结束」之间跳转,又希望改名、轻量分类不离开当前视线区域的开发者。

权限与信任:插件在当前 DSH 进程权限下运行,会接管固定键位 ⌘K(走官方「固定键位」通道,关掉插件即可恢复,不改写你的按键偏好文件)。安装前应在 GitHub 阅读源码与 MIT 许可证,自行判断是否纳入你的工作流。

兼容性:README 写明端到端实测主要在 macOS(Apple Silicon)+ DSH Desktop 0.2.1-rc.2;Windows / Linux 未测。DSH 升级后宿主契约可能变化,升级前后建议对照仓库 README 的 Compatibility 说明。

与宿主行为的差异:预览时间文案强调「你 X 前发言」,因为 updatedAt 不随模型回复更新。双击标题是唯一明显依赖宿主 DOM 的交互点。

链接

若你已经在用 DSH 的「一切皆插件」生态,这个插件把高频的会话切换从侧栏角落挪到屏幕中央的浮层里,并补上按状态排序、末轮预览、改名与少量标签——在不替代全文搜索的前提下,缩短「想起来 → 切回去」的路径。

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

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

Xiaoye