DSH Session Share:把整段 Session 导出为单文件 HTML 并可在客户端续聊

前言

在 DSH 里调试智能体时,一段 Session 往往包含多轮对话、工具调用输出和附件引用。要把完整上下文交给同事评审,或离线留存,单靠复制单条回复不够;内置的 Session 日志导出侧重 Markdown 与 ZIP,并不等同于「收件人双击就能在浏览器里按聊天样式读完、且可选地在 DSH 里只读预览或接续为新 Session」这一整条链路。维护者 osman3n 的客户端插件 dsh-session-share(仓库 osman3n/dsh-session-share)针对的正是:导出整段 Session 为自包含的静态 HTML,以及在安装同一插件的 DSH 客户端中导入、只读展示,并在确认后写入新 Session 继续对话。

这是什么

DSH Session Share(npm 包名 @osman3n/dsh-session-share,当前资料中的版本为 0.5.2,MIT 许可证)是 DSH 的客户端插件:在界面里增加「分享」与「导入」控件,不改动既有聊天气泡的渲染逻辑。README 写明仓库已公开,但包尚未发布到 npm,也未收录在 awesome-dsh-plugin.com 或 dsh-market;社区目录页为 skillhub.cn 插件条目。分类上属于客户端扩展;以 GitHub 公开状态为准时,星标为 0。

核心功能

界面上的两处入口

  1. 每条已 finalized 的助手消息下方操作行(紧挨 Copy、在 Like/Dislike 与 Branch 之前)出现约 28px 的分享图标。点击后导出的是整段 Session,因此在任意一条回复下操作得到的文件内容相同。
  2. Workspaces 顶栏(Search、View options、Add workspace 旁)出现约 28px 的导入图标,用于打开本插件生成的 HTML。

分享:单文件 HTML 转录

导出文件命名形如 dsh-session-<session-id>.html。文件为静态转录:无 JavaScript、无外链样式或字体、不向 DSH 回连。内容包括 Session 标题与导出元数据、每轮用户与最终助手消息、可折叠的「Working notes」(中间助手文本与工具调用)、工具参数与结果,以及图片/文件的附件卡片(名称、大小、类型;字节不嵌入 HTML)。工具输出在展示层保持紧凑可折叠行。

收件人不必安装 DSH、不必有账号、不必联网,用浏览器打开即可阅读。

导入:只读聊天视图

导入时仅读取文件内嵌的 inert JSON 块;不执行 HTML 中的脚本,不加载远程资源,导入本身不会创建 Session、不会写入历史、也不会把文本发给模型。

只读面板在宽度、用户消息右对齐、助手 Markdown、附件卡片样式上与正常聊天一致;附件同样只显示元数据。面板提供 Continue in a new chat:经确认后,在选定工作区(默认 Ungrouped)通过 Host 正常创建 Session,按导入轮次追加已完成 turn,此后下一条消息会在带导入历史的上下文中继续。该步骤会把导入文本送入已配置模型,因此有确认对话框。若转录含工具输出,续聊会以历史回放方式重建工具事件(分配新的本地 call id,并非声称工具在新 Session 中再次执行)。

0.5.0 之前的导出文件不含附件元数据,仍可导入,但文件引用显示为 @ 提及芯片而非附件卡片;用 0.5.0 及以上重新导出可得到卡片。

国际化

插件自身按钮与提示通过 DSH 的 locale 服务支持英文与简体中文;不会翻译转录正文。跨语言阅读可用浏览器翻译 HTML 或外部处理。

安装与启用

README 说明这是源码仓库,安装须由使用者显式完成;不要仅为阅读 README 而安装——内置 Session 日志导出已支持 Markdown 复制与 ZIP 下载。

在已具备插件源码目录的前提下:

  1. 在本地准备好包含本仓库 README 的插件目录(维护者在文档示例中的路径为 ...\plugins\session-share,你的机器路径以实际 checkout 为准)。
  2. 打开当前 Profile 的 DSH 插件管理器,从上述目录安装该 bundle。
  3. 若插件管理器提示,重载或重启 DSH。

插件以当前 DSH 进程权限在客户端运行;启用前请自行审阅 GitHub 源码 与 MIT 许可证。公开资料未给出 dsh plugin add github:... 一类一键命令,本文不臆造安装语句。

典型用法

分享

  1. 打开一个 Session。
  2. 在任意一条助手回复下点击分享图标。
  3. 浏览器下载 dsh-session-<session-id>.html。
  4. 将文件发给对方;对方可直接用浏览器打开,若也安装本插件则可导入为 DSH 内只读视图。

导入与返回

  1. 在 Workspaces 顶栏点击导入图标。
  2. 选择本插件生成的 dsh-session-*.html。
  3. 在中央面板查看只读转录;用 Back to chat 返回正常聊天。

接续为新 Session

在 Continue 行选择目标 Workspace(或保持 Ungrouped),阅读警告并确认。确认后创建真实 Session 并打开,后续发送的消息即在该 Session 中延续导入的历史。

适用场景与注意

适合:需要把完整 DSH Session(含工具轨迹与工作笔记)以单文件形式离线传递;需要在 DSH 内以原生聊天样式预览他人分享的转录;在可信前提下把历史导入为新 Session 继续调试。

隐私与安全:导出内容包含 Session 中可见的一切(工具参数、命令输出、路径等),可能含密钥;发送前务必审阅 HTML。分享走本地下载,无公开上传端点;接续路由经 Connection 认证,只接受校验后的转录载荷。导入文件视为不可信输入,续聊可能引入提示注入或伪造对话,确认框据此存在;勿对不信任来源的文件执行 Continue。勿在不应被他人读到 Session 的 Profile 上启用本插件。

兼容性(摘要):针对当前 DSH Session 事件格式,使用 conversation.chat.assistant-actions 与 main 面板槽位;依赖声明中包含 @deepseek-ai/dsh-client-ui-layout、@deepseek-ai/dsh-client-ui-workspace 等客户端包,渲染器本身无运行时 DSH 包导入。Workspaces 头栏按钮依赖稳定后缀 _headerActions,未来 DSH 改版可能影响按钮位置。

结尾

DSH Session Share 把「整段 Session → 单 HTML → 浏览器可读 → 可选导入只读 → 确认后续聊」串成一条不依赖额外服务端的路径,适合客户端协作与归档。查阅目录说明见 SkillHub 插件页,源码与完整说明见 GitHub 仓库。

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

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

Xiaoye