前言¶
在 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 等能力。
对话墙布局与卡片信息¶
三段顺序
- 置顶:用户置顶的会话。
- 进行中:按首次进入该段的顺序 FIFO;置顶与会话运行/等待时,可同时出现在置顶与进行中(两段不互斥)。
- 聊天集合:按工作区「空间」分组,组内网格排列;组可单独或全部折叠,折叠状态持久化。
每张卡顶部 显示工作区、状态、更新时间,以及该会话独立的模型下拉(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。
典型用法(可复现流程)¶
- 按上文命令将插件加入 desktop profile 并重启客户端(若刚改过客户端 bundle)。
- 在侧边栏或插件注册的入口打开对话墙,查看置顶 / 进行中 / 聊天集合三段卡片。
- 在卡内浏览历史、用模型下拉切换该会话模型、在输入区发送消息或处理底部审批。
- 需要新开同空间会话时,在空间组头点「+」,新会话出现在「进行中」。
- 在设置里切换 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 桌面端并行维护多个智能体会话、又不想频繁切页的用户。