前言¶
DeepSeek Harness(DSH)桌面版每次启动会绑定随机端口,会话 cookie 名称随端口变化,形如 dsh-auth-*。旧 cookie 不会被覆盖,30 天内也不会自动清理。重启次数一多,这些记录会在 Chromium 侧持续累积。当请求头体积接近 Node 默认的 16 KB 上限时,本地 Host 会返回 HTTP 431,桌面壳则报 Error: desktop welcome: Web authentication failed,窗口往往一闪即退。这与「删配置、重装应用」无关,根因是请求头溢出。社区插件 dsh-http-header-limit(维护者 divelife,分类:客户端)在启动阶段把 Host 的 maxHeaderSize 提高到 256 KB,属于针对上游讨论的临时绕过;不删 cookie、不改安装目录里的应用文件,升级 DSH 后插件仍可保留。
这是什么¶
dsh-http-header-limit 是 DSH 客户端侧插件,通过 Cordis patch 调整本地 Host 的 HTTP 请求头大小上限。README 说明:约 71 条 dsh-auth-* cookie(合计约 16.4 KB)即可触达 Node 16 KB 默认限制;将上限设为 256 KB 后,理论上可容纳约 1148 条同类 cookie。上游背景见 deepseek-ai/deepseek-harness#9924。当前 release 包版本为 1.0.0,许可证 MIT。
崩溃机制(简要)¶
- DSH 桌面版每次启动使用新端口,
dsh-auth-<端口>类 cookie 只增不减(30 天内不清理)。 - 启动流程向本地 Host 发起的请求携带全部相关 cookie,请求头体积超过 Node 默认 16 KB。
- Host 响应 431,认证失败,表现为
desktop welcome: Web authentication failed与进程退出。
该插件不修改 cookie 存储策略,只扩大 Host 侧可接受的请求头容量。
核心功能¶
- 在 DSH 启动加载插件时,通过
cordis.patch.yml将 Host 的maxHeaderSize设为 262144(256 KB)。 - 安装后无需日常配置,每次启动自动生效。
- 附带 dsh-cookie-rescue 脚本(Windows PowerShell / macOS shell):在补丁尚未生效且已无法启动时,可安全删除
127.0.0.1下以dsh-auth-开头的 cookie 记录(删前备份);依赖 Node ≥ 22.5 的node:sqlite,无需 Python。
安装与启用¶
在 DSH 内安装,不要使用命令行 git clone,也勿凭插件名自行拼接 dsh plugin add。
- 从 Releases 下载
dsh-http-header-limit-1.0.0.tgz,不要解压,记下完整路径;或直接复制 release 页中.tgz结尾的下载链接,可跳过本地下载步骤。 - 打开 DSH,侧边栏进入「插件」→「添加插件」。
- 在输入框填入 tgz 的完整路径或上述下载链接,例如:
C:\Users\你\Downloads\dsh-http-header-limit-1.0.0.tgz
- 安装完成后完全退出 DSH(含系统托盘)再启动;插件在启动阶段加载。
插件以当前 DSH 进程权限运行;安装前建议浏览 GitHub 仓库 源码与 MIT 许可证,确认符合你的安全策略。
典型用法与验证¶
装好即可,无需额外开关。若要确认插件已生效,可查看标记文件:
cat ~/.dsh/http-header-limit.json
# {"at":"...","limit":262144,"status":"maxHeaderSize=262144 on 127.0.0.1:49677"}
status 中的端口应与当次 Host 监听端口一致。文件不存在通常表示插件未在启动链路上运行。
已崩溃时的急救脚本¶
补丁未装上、且 DSH 已无法启动时使用。必须先完全退出 DSH。
Windows:
powershell -ExecutionPolicy Bypass -File dsh-cookie-rescue.ps1 -DryRun # 先预览
powershell -ExecutionPolicy Bypass -File dsh-cookie-rescue.ps1 # 真删
macOS:
chmod +x dsh-cookie-rescue.sh
./dsh-cookie-rescue.sh --dry-run
./dsh-cookie-rescue.sh
脚本会尝试常见 Cookies 数据库路径(如 Windows 下 %APPDATA%\@deepseek-ai\dsh-desktop\Network\Cookies,macOS/Linux 下 ~/.dsh/electron-user-data/Network/Cookies 等)。若自动探测失败,可指定环境变量:
$env:DSH_COOKIES_DB = "C:\完整\路径\Cookies"
export DSH_COOKIES_DB="/full/path/Cookies"
适用场景与注意¶
适合: 长期使用 DSH 桌面版、频繁完全退出再启动,且尚未遇到或已经遇到 431 / Web authentication failed 闪退的开发者。
注意:
- 这是临时绕过,不是上游对 cookie 累积问题的根治方案。
- 启动失败时不要点击弹窗中的「Disable third-party plugins」。README 说明该操作会改名
cordis.patch.yml并将dsh.profile.bundles裁到仅剩两个官方包,无法修复本 bug,反而会丢失配置。 - DSH 生态强调「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
若你的 DSH 桌面版因 dsh-auth-* cookie 撑爆请求头而无法启动,dsh-http-header-limit 用最小改动把 Host 头上限抬到 256 KB,并可选 cookie 急救脚本应急。详情与 release 包见 GitHub:divelife/dsh-http-header-limit;目录介绍见 SkillHub。