前言¶
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。