description: "Web 会话日志 ZIP 导出:Host 流式传输、认证下载路由、Session Header 操作与 /export 命令。"
English | 中文
dsh-session-log-export 让 Web 界面可以下载会话的完整历史:Session Header 更多操作按钮下的 下载 Session 日志 菜单项与 /export 斜杠命令都会把会话树——会话本身、其子会话与附件——作为 ZIP 交给浏览器下载。本包拥有 Host 归档流、经过认证的 Fetch 路由以及浏览器控制和反馈。下载目标位置由浏览器选择。设置与用法在前,随后说明实现细节。
当 Web bundle 需要让用户导出会话日志时使用本包。它需要 Connection、命令注册表、Session 查询与持久化以及附件服务。挂载插件,然后在 Session Header 的更多操作菜单中选择 下载 Session 日志 或输入 /export;浏览器会下载 dsh-session-<id>.zip。
为需要带可见下载弹窗的用户级会话导出的 Web 部署选择它。需要程序化或 Host 侧导出时避免使用:本包产生的是浏览器下载,而非 Host 路径写入。日志从持久化读句柄序列化而来,因此任何已挂载后端都受支持。
- id: session-log-download
name: '@deepseek-ai/dsh-session-log-export'
Web bundle 将本包与 Connection、dsh-commands、dsh-client-ui-commands 和 dsh-client-ui-conversation 一起挂载。
| 字段 | 默认值 | 含义 |
|---|---|---|
compressionLevel |
6 |
每个 ZIP 条目的 DEFLATE 级别,范围为 0 到 9。 |
| 输入 | 结果 |
|---|---|
/export |
记录一组用户命令生命周期;提交命令的浏览器下载 GET /api/session.export?sessionId=<id>&includeDescendants=true |
/export <path> |
错误;浏览器下载通过浏览器的普通下载行为选择目标位置 |
弹窗报告三个阶段:准备中、开始下载或失败。关闭弹窗不会取消正在进行的下载,该操作随后完成时弹窗也不会重新打开。每个会话同时只允许一项下载,重复操作共用该任务。导出包含实时会话的最新事件:Host 端点在读取前会 flush 活动的根会话,因此斜杠命令触发的 ZIP 会包含启动下载的 command/run 与 command/done 事件对;冷持久化会话不需要 flush。每份逻辑日志在归档中使用当前 generation 的规范文件名(v0 为 session.jsonl,其他版本为 session.vN.jsonl),每个子会话目录下也遵循同一规则。图片使用 media/<attachmentId>.<ext>,通用文件使用 files/<digest-prefix>/<digest>/<name>。通用文件以有界分块读取并压缩,因此导出大文件时不会把它完整缓冲进内存。
当 ZIP 流式传输开始前的预检失败时——例如 Host 端点不可达或配置错误——弹窗显示准备阶段错误。浏览器接受 GET 后发生的子会话或附件读取失败由浏览器下载管理器报告,不通过弹窗报告。
当包级约定不够用时阅读以下页面。它们从 Web 控制逐步进入 Host 端点与周围的命令和会话表面。
/export 命令注册的用户命令注册表。/export 的浏览器命令表面。/export 控制无。/export 留在用户命令平面,ZIP 下载不会进入模型历史。
为零。该命令不创建模型轮次。
无。仅日志命令生命周期与浏览器下载不会改变派生请求前缀。
这些限制说明本包何时不合适,或何时需要特别的运维注意。它们是当前包约束,不是任务积压。
运行时不变式: 不发布伴生入口。Connection 与 command registry 持有两个注册,每次 export 直接读取权威 Session service。