040822/dsh-gzip

040822★ 2JavaScriptLast synced: 2026-08-14

Open on GitHub

dsh-gzip插件:压缩API响应,降低带宽占用,解决低速网络下历史加载失败问题

README excerpt

dsh-gzip DeepSeek Harness 的 /api 响应 gzip 压缩插件:解决远程 / 低带宽访问时「历史加载失败:The user aborted a request.(internal)」的问题。 起因 dsh Web GUI 加载会话历史时,一页历史会把最近 50 条消息涉及的 全部原始事件 下发(含全部流式 chunk),响应体积可达 4–13.4MB ,且服务端 不做任何压缩 ;而浏览器侧的 RPC 请求有 30 秒硬超时 。对于带宽较低或链路不佳的访问(easytier / ZeroTier / Tailscale 等异地组网、移动网络、上行受限的家宽),传输超过 30 秒就会被浏览器中止,界面显示「历史加载失败」。 实测数据(本项目开发环境的真实会话): 会话 原始响应 gzip 后 压缩率 大型历史会话 13.4MB 1.16MB 91.4% gzip 之后,同样 3Mbps 的链路上,单页历史从 36 秒降到 3 秒,远低于 30 秒超时。 安装 前置要求 :已安装 DeepSeek Harness( dsh 命令可用);Node.js ^22.19 或 =24 。 插件已发布到 npm,一条命令装好: 重启生效 :安装完成后,重启正在运行的 DeepSeek Harness Web 服务并刷新页面。 其他安装方式 - 指定版本 : dsh plugin --profile web add dsh-gzip@ - 还没装 DSH : npx -p @deepseek-ai/dsh dsh plugin --profile web add dsh-gzip - 从 GitHub 安装 : dsh plugin --profile web add github:040822/dsh-gzip (仓库:github.com/040822/dsh-gzip) - 从源码 / 符号链接安装 (不经过 npm,开发或内网部署用):把插件目录链接到 profile 的插件解析目录,并在 profile patch 中注册: 验证 装好并重启后,用一条 curl 确认响应带上了 content-encoding: gzip : 浏览器端:DevTools → Network → 任意 session. 请求的 Response Headers 应带 content-encoding: gzip ;打开大型历史会话的加载时间应显著下降。 工作原理 - dsh 的 /api 路由由 dsh-client-connection 独占注册 (重复注册会抛错), bridge() 函数也未导出——插件没有"正门"可走,因此采用:monkey-patch webServer.register ,在 /api 前缀路由注册的瞬间把 handler 替换…

View full README on GitHub →
Tools / Devdeepseek-harnessdshdsh-plugin

Category