前言¶
DeepSeek Harness 桌面端每次啓動都會在本地隨機迴環端口上跑 webserver,並通過 GET / 做一次啓動令牌交換。交換過程會寫入名字形如 dsh-auth-* 的會話 cookie,有效期 30 天。Cookie 按主機存儲、不區分端口,因此多次啓動後,同一主機(例如 127.0.0.1)下的 jar 裏會不斷累積這些 cookie。
桌面歡迎握手使用 credentials: "include" 發起請求,會把整個 jar 一併帶上。累計啓動次數足夠多後,Cookie 請求頭可能超過 Node.js 默認約 16 KiB 的上限,服務器返回 HTTP 431 Request Header Fields Too Large,界面表現爲 desktop welcome: Web authentication failed,應用無法正常進入。
下面介紹社區插件 dsh-cookie-fix(維護者 qiongqi-empty):在 Host 側自動把 dsh-auth-* 控制在 3 條以內,從機制上避免再頂到請求頭上限。它是 Host-only 的 DSH bundle,不依賴 pnpm 包、沒有構建步驟,通過官方插件管理器安裝即可。
這是什麼¶
dsh-cookie-fix 是僅運行在 DSH Host 上的插件 bundle(包名 dsh-cookie-fix,界面顯示爲 Cookie 清理器 / Cookie Fix)。它不修改 app.asar、不注入客戶端腳本、不註冊後臺進程,只在桌面端 webserver 上對特定響應做 cookie 清理。
倉庫地址:https://github.com/qiongqi-empty/dsh-cookie-fix。當前 package 版本爲 1.0.0,許可證 MIT。插件在 DeepSeek Harness Desktop 0.2.1-rc.5(nightly,Electron 44)上開發並驗證;未在 engines.dsh 中寫死版本號,實現只依賴 webServer 服務與 Node 標準庫。
核心功能¶
插件在 DSH Host 的 webserver 上註冊請求監聽器,只處理每次啓動時的 GET /(啓動令牌交換):
- 解析請求裏已有的
dsh-auth-*cookie; - 保留「當前 authority 對應的一條(本次響應會重新簽發)+ 最新 2 條舊 cookie」;
- 在同一 HTTP 響應裏追加
Set-Cookie,對其餘舊 cookie 設置Max-Age=0等刪除指令。
Electron session 與 Chromium 會執行這些刪除指令,因此每次啓動後 jar 裏最多剩 3 條 dsh-auth-*,請求頭體積不會無限增長。新簽發的 auth cookie 仍排在第一個 Set-Cookie,不改變桌面端讀取 cookie 的既有邏輯。
行爲邊界(來自 README):
- 僅在
GET /且請求中確實帶有 3 條以上dsh-auth-*時才改響應頭;平時不改動任何響應。 - 不聯網,不讀取、不上報 cookie 值;只根據 cookie 名稱與簽名 payload 中的
issuedAt排序並刪除已隨請求發送的舊項。 - 卸載 bundle 後監聽器隨 plugin fiber 釋放,桌面端恢復官方行爲;殘留的少量 cookie 會在 30 天內自然過期。
安裝與啓用¶
圖形界面(官方 Plugins 頁面)¶
- 打開 DeepSeek Harness 的 插件 / Plugins 頁面。
- 點 添加插件。
- 粘貼下面地址(不要帶末尾斜槓):
https://github.com/qiongqi-empty/dsh-cookie-fix
- 點 安裝。列表中出現 Cookie 清理器 / Cookie Fix(
dsh-cookie-fix)且爲啓用狀態即可。 - 若頁面提示需重啓才能加載新插件,重啓一次 DeepSeek Harness。
裝好後每次啓動都會自動清理多餘的 dsh-auth-*,無需額外配置或手動操作。若從 GitHub 安裝超時,可在對話框裏切換 安裝源 → 中國大陸鏡像,或改用命令行安裝。
命令行(等價)¶
dsh plugin --profile desktop add https://github.com/qiongqi-empty/dsh-cookie-fix
卸載¶
- 圖形界面:插件頁面 → 已安裝 →
dsh-cookie-fix/ Cookie 清理器 → 卸載。 - 命令行:
dsh plugin --profile desktop remove dsh-cookie-fix
典型用法¶
正常使用下沒有單獨「調用 API」的步驟:安裝並啓用後,插件隨桌面端啓動生效。
若已出現 431、應用完全打不開,需要先讓 Harness 能再次啓動。插件必須在應用能跑起來之後才能安裝。README 給出的恢復步驟如下:
- 完全退出 DeepSeek Harness(含托盤圖標)。
- 刪除 Chromium 的 cookie 數據庫(僅重置本地網頁 cookie,不影響
~/.dsh裏的賬號憑據)。Windows 路徑示例:
%APPDATA%\@deepseek-ai\dsh-desktop\Network\Cookies
- 重新啓動 DeepSeek Harness,再按上文步驟安裝插件。
開發者可在不啓動 DSH 的情況下跑倉庫自帶自測:
node test.mjs
README 說明該腳本驗證:10 條 cookie 時恰好追加 7 條刪除、新 auth cookie 仍排第一、cookie 少時不改響應、其它路徑不受影響。
適用場景與注意¶
適合誰:長期使用 DeepSeek Harness 桌面端、頻繁重啓或升級、曾遇到或想預防 HTTP 431 / Web authentication failed 的開發者。
權限與安全:插件以當前 DSH 進程權限運行,邏輯集中在單文件 index.mjs,安裝前建議自行閱讀源碼與 MIT 許可證。社區插件目錄(如 SkillHub 上的條目頁)是獨立生態站點,與 DeepSeek / 幻方無官方從屬關係;安裝來源以你信任的 GitHub 倉庫爲準。
不適用或需知:純 CLI / 非 desktop profile 若不存在相同 cookie 累積問題,則不必安裝;若未來 DSH 移除 webServer 服務,插件會安全地不生效,不會阻止 Harness 啓動。
結尾¶
dsh-cookie-fix 用 Host 側、可逆的方式把隨機端口帶來的 dsh-auth-* 堆積限制在 3 條以內,針對 Node 16 KiB 請求頭上限導致的桌面啓動失敗給出固定解法。需要時可從 Plugins 頁面或 CLI 安裝,不需要時卸載 bundle 即可恢復官方行爲。