dsh-topic-wall:多会话对话墙 DSH 客户端插件

前言

在 DeepSeek Harness(DSH)里同时开多个会话时,常见做法是在侧边栏逐个切换:看状态、翻历史、回审批都要进会话本身。若你希望在同一屏里按「置顶 / 进行中 / 集合」浏览多张卡片、卡内读真实历史并直接发下一条消息,社区客户端插件 dsh-topic-wall(维护者 caichangzhan,当前版本 0.4.1,MIT)提供的是「对话墙」界面,而不是替代 DSH 的会话存储或模型后端。

下面介绍插件定位、已文档化的能力、安装方式与使用注意。事实以 GitHub 仓库 README 为准;插件也收录于社区目录 skillhub.cn(独立站点,与 DeepSeek / 幻方无官方从属关系)。

这是什么

dsh-topic-wall 是 DSH 客户端插件:把 Harness 的多个会话排列成卡片墙,分为 置顶 → 进行中 → 聊天集合 三段固定顺序。不进入原会话页,也能读历史、看运行状态、处理审批、切换该卡独立模型,并在卡内通过 session/prompt 发送、session/cancel 停止。

插件通过 cordis.patch.yml 注入客户端 bundle,依赖当前 DSH 客户端提供的 sessions、uiSession、uiWorkspace、modelDirectories 等能力。

对话墙布局与卡片信息

三段顺序

  1. 置顶:用户置顶的会话。
  2. 进行中:按首次进入该段的顺序 FIFO;置顶与会话运行/等待时,可同时出现在置顶与进行中(两段不互斥)。
  3. 聊天集合:按工作区「空间」分组,组内网格排列;组可单独或全部折叠,折叠状态持久化。

每张卡顶部 显示工作区、状态、更新时间,以及该会话独立的模型下拉(DSH 模型按会话存储,选择只作用于当前卡对应会话)。

空间组头「+」:按该空间 workspaceId 新建空会话,不跳转 DSH 主界面,新会话进入「进行中」。

卡片内聊天与队列

  • 读取真实会话历史;默认自动加载最近 24 小时,更早内容滚到顶部或点「加载更早」再拉,已加载数据不删除。
  • 消息布局:左侧 agent、右侧 user;Enter 发送、Shift+Enter 换行,输入法组合态不误发。
  • 图片:按钮 / 拖拽 / 粘贴,最多 6 张、单张 10MB;历史里显示图片(需当前模型支持 vision)。
  • 运行中发送进入宿主队列,可展开、原地编辑、转向、移除、全部转向;含附件的排队项只读。
  • 连续工具结果折叠成一组,组体仅在展开时渲染。
  • 审批 / 单选题出现在卡片底部;长审批文字可悬停滚动、点击展开。

卡片操作与设置

每卡 ⋯ 菜单:打开原会话、重命名(卡内联)、创建分支、归档(带确认);运行中的会话归档前会再确认「停止并归档」。归档后按 workspaces.archivedSessionIds 立即从墙上移除。

设置面板(实时生效,保存写入 localStorage):主题风格、边角、列数、空间行数、卡片高度、字号、动效、工具行。

运行日志:捕获 window error、未处理 rejection、React 错误,以及 prompt / history / queue / approval / model 相关异常;设置齿轮红点仅表示未读错误。

每张卡有独立 ErrorBoundary;单卡渲染异常不会拖垮整面墙,卡内提供重试 / 打开 / 归档。

三套主题

主题只改表面、字体、边角、消息形态和固定强调色,不改墙的结构。

主题 要点
iOS 系统字体、白色圆角卡、iMessage 气泡、毛玻璃、系统蓝;柔和蓝色 mesh 背景 + 细点阵;新消息气泡弹入、按压回弹、输入三点动画。
QQ空间 蓝白渐变顶栏、圆角白卡、说说式气泡、空间蓝;天空 / 云层背景;「对方正在输入」蓝色气泡。
黑客代码 暗底终端、等宽字体、荧光绿、方角;绿色网格 + 顶部辉光;终端提示符和绿色方块光标。

安装与启用

插件以当前 DSH 进程权限运行;安装前应自行查看源码与 MIT 许可证。安装命令须来自官方 README,勿凭仓库名拼接 github:owner/repo 形式。

本地目录

dsh plugin --profile desktop add /path/to/dsh-topic-wall

或在 DSH 插件 → 添加插件 里填写绝对路径或 tarball 路径。

Tarball

dsh plugin --profile desktop add /path/to/dsh-topic-wall-0.4.1.tgz

说明:桌面端不加载 Web client HMR。更新 client.js 后需要重启桌面端;Cmd+R 可能仍使用旧 bundle。

典型用法(可复现流程)

  1. 按上文命令将插件加入 desktop profile 并重启客户端(若刚改过客户端 bundle)。
  2. 在侧边栏或插件注册的入口打开对话墙,查看置顶 / 进行中 / 聊天集合三段卡片。
  3. 在卡内浏览历史、用模型下拉切换该会话模型、在输入区发送消息或处理底部审批。
  4. 需要新开同空间会话时,在空间组头点「+」,新会话出现在「进行中」。
  5. 在设置里切换 iOS / QQ空间 / 黑客代码主题并调整列数、卡片高度等;偏好保存在 localStorage。

兼容与限制

  • 需要当前 DSH 客户端提供 sessions、uiSession、uiWorkspace、modelDirectories。
  • 图片能力依赖当前模型是否支持 vision。
  • 无自动化 UI 测试;仓库内 npm test 为静态冒烟检查(Node >= 20)。
  • macOS / Electron 上 undici setTypeOfService EINVAL 有主机侧 guard,默认启用;可设环境变量 DSH_TOPIC_WALL_TOS_GUARD=0 关闭。

开发与仓库结构

本地校验:

npm test

主要文件:client.js(浏览器端 main / sidebar.panellist)、index.js(Host 半部与 macOS undici guard)、cordis.patch.yml、locale/*.json、icon.svg;布局与交互细节见仓库内 DESIGN.md。

结尾

dsh-topic-wall 把多会话管理收敛到一面可配置的对话墙:分段卡片、真实历史、卡内回复与审批、按会话切模型、三套主题。适合在 DSH 桌面端并行维护多个智能体会话、又不想频繁切页的用户。

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

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

小夜