dsh-session-deck:在 DSH 侧栏里管整个工作区

前言

DeepSeek Harness(DSH)的侧栏默认按项目组织会话。单项目内置顶、排序够用;一旦同时在多个项目里切换,内置能力会显得不够:置顶只能重排同一项目内的会话,没有「我此刻正在跟进的线程」这一层;常用项目散落在创建顺序里,图标都是文件夹;想找回昨天动过的会话要靠滚树;底部组件区也占空间却不好收拢。

dsh-session-deck 是维护者 Timebro9999 发布的客户端插件(npm 包名 dsh-session-deck),在 DSH 桌面/Web 客户端侧栏上叠加一层 Codex 风格的交互:置顶带、最近活动视图、按项目 emoji 图标,以及可折叠的「置顶 / 项目 / 组件」分区。界面文案随 DSH 语言(中/英)切换。

这是什么

一句话:dsh-session-deck 不替换 DSH 自带侧栏,而是通过 DOM overlay 增强它,让你在一个侧栏里 pin 项目与会话、按最近使用浏览、给项目换图标,并折叠不用的区块。

  • 维护者:Timebro9999
  • 分类:客户端(platform: web,无原生代码)
  • 许可证:MIT
  • 生态:插件可在 SkillHub 目录页 查阅;社区目录与 DeepSeek / 幻方无官方从属关系,DSH 本身也遵循「一切皆插件」的思路。

核心功能

下面四项是 README 中明确列出的能力。

置顶带(置顶)

可将单条会话或整个项目 pin 到侧栏顶部统一一条带里。被 pin 的项目可在原位展开并列出其会话,无需先滚到下方项目列表。点击打开,✕ 取消 pin;分区标题可折叠整条置顶带。

活动视图(工作区行末的 🔔)

工作区一行最右侧的铃铛图标把侧栏切到最近使用:按「今天 / 昨天 / 星期 / 日期」分组;每条会话两行(标题 + 项目名,以及最后一条回答的开头作为预览);进行中的会话有运行指示。点选会话后视图保持打开,便于连续浏览多条线程;再点铃铛或 ✕ 回到项目列表。

项目图标

用任意 emoji 替换项目行的文件夹图标,侧栏项目行与目录选择器中的文件夹行均生效。提供类似 Codex 的选择器:最近使用、分类标签、图标网格、重置为默认文件夹。

可折叠分区与状态一致

置顶、项目(内置项目列表)、组件(侧栏底部 widgets)各自有标题,点击可折叠,状态按 DSH home 记在浏览器 localStorage。重命名会话、完成一轮对话或改项目图标后,置顶带与活动视图都会跟 live store 对齐;进行中的会话显示 shell 自带的运行环。

侧栏结构示意

README 给出的结构如下(铃铛在最上行右侧):

┌ 工作区                        🔍  ⌘  📁+  🔔   ← the bell opens the activity view
│ ▾ 置顶                                  3       ← pinned band (conversations + projects)
│   ▸ 🌈 deepseek调试                     项目
│     🚀 新出了个GLM5.3 flashx…           会话
│     🌈 我没发现现在有什么这个左侧…      会话
│   ────────────────────────────────────
│ ▾ 项目                                  9       ← the shipped project list, collapsible
│   📁 pdf
│   🚀 前沿方向研究
│       新出了个GLM5.3 flashx…            1天
└
  ⋯ widgets ⋯
  ▸ 组件                                          ← the bottom widgets, collapsible

安装与启用

插件以当前 DSH 桌面 profile 的客户端权限运行,安装前建议浏览 GitHub 仓库 源码与 MIT 许可证。README 要求 DSH 0.2.0-rc.1 或 0.1.7-rc.2(desktop profile);package.json 中 dsh.compatibility.dsh 为 ^0.1.7-rc.2 || ^0.2.0-rc.1。

从 npm 安装(应用内「添加插件」对话框也可按包名添加):

dsh plugin --profile desktop add dsh-session-deck

从 GitHub 安装(不经过 npm):

dsh plugin --profile desktop add github:Timebro9999/dsh-session-deck

安装后需重启桌面应用或重载窗口一次,之后随 profile 加载。若要锁定某一 release 而非跟踪 main,可使用标签后缀,例如:

dsh plugin --profile desktop add github:Timebro9999/dsh-session-deck#v0.1.1

卸载:

dsh plugin --profile desktop remove dsh-session-deck

卸载并重载后,宿主侧无残留状态;侧栏恢复为未装插件前的样子。

典型用法

按 README 的 Usage 节,日常操作可归纳为四步。

  1. Pin — 悬停会话行,在操作条上点 ☆;或悬停项目行,点铅笔左侧的 ☆。置顶带出现在顶部;分区标题可折叠,✕ 去掉单条 pin。
  2. 最近 — 点工作区行末的铃铛。选会话打开;视图保持,可连续选多条。再点铃铛或 ✕ 回到项目列表。
  3. 图标 — 悬停项目行点铅笔(或右键项目行)打开选择器;选 emoji、从系统 emoji 面板粘贴(macOS 上 README 提示 ⌃⌘Space),或重置为文件夹。目录选择器内的文件夹行同样可用该选择器。
  4. 折叠 — 点击 置顶 / 项目 / 组件 任一区块标题;折叠状态按 DSH home 记住。

实现与存储(选用参考)

插件不注册 slot、不注入 client service(inject: [])。它在 shipped 侧栏 DOM 上挂载 overlay:定位 [data-row-key^="workspace:"]、session: 等行与滚动区、底部区域,按需读取 sessions、workspaces、uiWorkspace、locale 等服务。插入节点带 data-dsh-session-deck 标记,便于重载 bundle 时回收旧节点。

持久化均在浏览器 localStorage(按 DSH home),例如:

Key 内容
dsh-session-deck:v1 emoji、recent、pinnedSessions、pinnedProjects、expandedProjects、各分区折叠状态等
dsh-session-deck:previews:v3 各会话最后回答预览,键为 updatedAt

项目 emoji 可能存 workspace id 或 name:<basename> 两种键,以便在不同界面解析。

注意:插件依赖当前侧栏 DOM 结构与服务读取方式;若 DSH shell 大改侧栏布局,overlay 锚点可能失效。无运行时 npm 依赖、无构建步骤,主逻辑在随包发布的 lib/client.js。

适用场景与注意

适合:经常在多个 DSH 项目间切换、希望把「正在做的线程」和常用项目提到侧栏顶部、用最近活动 + 回答预览快速回访会话、用 emoji 区分项目的桌面/Web DSH 用户。

平台:凡能跑 DSH Web 客户端的环境均可(macOS / Windows / Linux 桌面构建);插件为浏览器端 DOM 层,无 OS 专用 API。

安全与信任:与其它 DSH 插件一样,代码在客户端进程内执行;安装前请自行审阅仓库。仓库测试说明为 148 + 7 条断言,CI 在 Node 22 / 24 上跑 npm test。

结尾

dsh-session-deck 把侧栏从「单项目树」扩展成带置顶带、铃铛最近视图、项目 emoji 与可折叠分区的整工作区面板,安装命令以 README 为准,改完 profile 后记得重载一次客户端。

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

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

小夜