dsh-codex-sidebar: DSH Sidebar Message View and Date-based Sectioning

前言

在 DSH(DeepSeek Harness)里,侧栏默认按工作区分组展示会话。会话一多,要找「昨天聊过的那条」或「正在跑的任务」往往要在多个分组里来回点。宿主自带的扁平列表可以按时间排序,但缺少按「今天 / 昨天 / 星期几 / 更早」分段的可读结构,也不容易一眼看到某条会话的最新消息摘要。

下面介绍的是社区插件 dsh-codex-sidebar(维护者 mengzhongjie):在侧栏提供可选的「消息视图」,把全部工作区与未分组会话按优先级与日期重新分段,并用顶行铃铛在工作区视图与消息视图之间切换。它是独立客户端插件,不依赖特定主题;与 dsh-claude-style 等主题共存时,由 README 中描述的让位规则决定列表与铃铛由谁负责。

这是什么

dsh-codex-sidebar 是 DSH 左侧栏的「消息视图」插件:侧栏里的全部会话按 优先级 / 昨天 / 星期X / 更早 重新分段排列,工作区行收起来,顶行保留一颗铃铛负责切换视图。

插件以当前 DSH 进程的权限在客户端注入逻辑;安装前建议自行查看源码与 LICENSE,确认符合你的使用环境。

核心功能

按日期分段与优先级

进入消息视图后,插件会把宿主侧栏切到扁平分组,再按会话更新时间分桶,并在段落之间插入标题。今天这一段的第一段标题叫「优先级」:正在运行的会话强制排在最前一段并置顶,今天更新的会话跟在后面,避免当前在看的会话被埋进「更早」。

段落标题随宿主界面语言(中文 / 英文)变化;宿主语言晚就绪或中途切换时会跟上。

两行式会话行与工作区标签

每一行显示会话标题,以及该会话最新消息的一条预览(预览会先去掉常见 markdown 记号)。悬停时标题可横向滚动,预览行保持不动。扁平列表不再有分组标题,每行右侧补一个工作区名标签;未分组会话显示「未分组」。消息视图覆盖全部工作区与未分组会话,不再有「屏蔽工作区」类过滤。

铃铛开关与默认行为

工作区行右侧有一颗铃铛,用于在工作区视图与消息视图之间切换。开着消息视图时常亮;有会话在跑时铃铛上会出现一个小绿点(不显示数字)。装好后侧栏默认仍是宿主原本的工作区视图,只有按下铃铛才进入消息视图;选择写入本地存储,下次启动沿用。

布局与滚动

消息视图里列表宽度固定,横向滚动条关闭,放不下的标题与预览用省略号截断;纵向滚动不受影响。退出消息视图时会还原宿主原来的 overflow 设置。

与 dsh-claude-style 的共存

主题 dsh-claude-style 若已去掉内置的日期分组与顶行铃铛,则列表与铃铛由本插件独占。若主题仍自带日期视图(例如 body 上有 data-dsh-claude-date-groups,或页面上仍存在主题铃铛),本插件会让位,由主题的日期视图负责列表;具体判定见仓库 src/coexist.js 中的 themeHasDateView()。

安装与启用

需要 DSH ≥ 0.2.0,且 pnpm 在 PATH 中(桌面 App 的运行时自带一份,README 末尾给出了包装脚本示例)。

官方从 GitHub 安装并登记到 profile bundle 的命令如下:

dsh plugin --profile <profile> add github:mengzhongjie/dsh-codex-sidebar

dsh plugin 装完依赖后会自动把包写进 profile 的 dsh.profile.bundles;插件自带的 cordis.patch.yml 随 bundle 生效,无需手工改配置。装完后需要重启宿主。桌面 App 关窗不会退出进程,需用 Cmd+Q 完全退出后再开。桌面 App 自管的 profile(例如 desktop)同样使用上述命令。

在仓库目录中开发、要从本地路径安装时:

node scripts/install.mjs --profile codexprobe                  # 装
node scripts/install.mjs --profile codexprobe --uninstall      # 卸

脚本会把 link:<本目录> 写入 profile 的 dependencies、把包名加入 dsh.profile.bundles,并在 node_modules 下建立符号链接;同样需要重启宿主后生效。

典型用法

  1. 按上一节命令为指定 profile 安装插件并重启 DSH。
  2. 打开侧栏,确认仍处于默认的工作区视图(按工作区分组的列表)。
  3. 在工作区行右侧找到铃铛,单击进入消息视图:列表变为按「优先级 / 昨天 / 星期X / 更早」分段,会话行为标题 + 最新消息预览。
  4. 再次单击铃铛,回到工作区视图。

持久化只使用 localStorage 键 dsh-codex-sidebar.settings:

键 类型 默认 作用
dateViewEnabled boolean false 是否处在消息视图;按铃铛会改写它

进入消息视图时,宿主原来的分组方式会备份到 dsh-codex-sidebar.group-before-date-view。若上次异常退出留下扁平状态,下次启动在备份仍在且当前仍为 flat 时会自动还原。

适用场景与注意

适合谁: 经常在多个工作区之间切换、又希望按「最近几天」浏览全部会话的 DSH 用户;需要一眼看到会话最新消息预览、而不是只在分组标题下找标题时,消息视图更直观。

应注意:

  • 实现依赖宿主侧栏的私有 DOM 约定(如 data-row-key、flatList 容器等)。宿主大版本改版可能导致失效;选择器集中在 src/constants.js 与 src/sidebar-dom.js,便于跟进修复。
  • 桌面 App 没有窗口级缩放的对外通道;本插件不提供页面缩放(那是主题类插件的能力)。
  • 插件与宿主、其他 bundle 同进程运行;安装第三方插件前请阅读源码与 MIT 许可证,并只在可信来源使用官方文档中的安装命令。
  • 若把 dsh-claude-style 还原成仍带日期视图的旧版本,本插件会重新让位,列表由主题的日期视图负责。

结尾

dsh-codex-sidebar 把 DSH 侧栏补成可选的消息视图:全部会话按优先级与日期分段、两行预览、铃铛切换,且默认不接管侧栏,避免打断原有工作区习惯。需要安装说明与共存细节时,以仓库 README 为准。

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

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

Xiaoye