dsh-cookie-sweep:啓動時清理桌面端殘留 Cookie,避免 431 與 Web 認證失敗

前言

DeepSeek Harness(DSH)桌面端會把登錄相關的 cookie 持久化在 %APPDATA% 下的 Electron 網絡目錄裏。這些文件在多次啓動後只增不減,請求頭可能被撐過常見的 16KB 上限,服務端返回 HTTP 431,界面長期停在 “Web authentication failed”。手動做法是徹底退出 DSH、刪除 Cookies 與 Cookies-journal 後再打開;下面介紹社區插件 dsh-cookie-sweep(維護者 ALingStudio,分類 admin-security),把這一步做成可配置的自動化流程,並附帶設置頁查看每次清理結果。

這是什麼

dsh-cookie-sweep 是 DSH 的 desktop 插件:在每次啓動(或手動觸發)時,清理 DSH 桌面端網絡目錄裏殘留的登錄 cookie 文件,避免堆積超過 16KB 請求頭限制。登錄態本身在 .dsh 目錄,不受此插件影響。

爲什麼需要它

桌面端 cookie 持久化位置包括:

%APPDATA%\@deepseek-ai\dsh-desktop\Network\
%APPDATA%\@deepseek-ai\dsh-desktop\Partitions\<分區>\Network\

啓動次數增多後,相關文件持續累積。達到一定程度時,每次請求頭超過 16KB 上限,服務端回 431,Web 界面無法完成登錄。README 中的症狀對照:啓動大約 72 次之後徹底打不開、報 Web authentication failed;瀏覽器網絡面板裏請求頭超過 16KB、服務端回 431。若清理後仍打不開,需先確認是否同一原因。

核心功能

啓動時清理

插件被加載時(DSH 啓動時)清理 Cookies / Cookies-journal;可選是否同時清理 Trust Tokens(由配置 keepTrustTokens 控制)。刪除失敗會重試約 6 秒,以便等待正在退出的進程釋放文件句柄。

狀態頁

路徑:設置 → Cookie 清理。逐文件展示 已刪除 / 不存在 / 被佔用 / 已跳過 / 已重建、大小與原因,並提供「立即清理」按鈕。

安全邊界

刪除不可逆,插件行爲刻意保守:

  1. 僅在 %APPDATA%\@deepseek-ai\<app>\Network 與 Partitions\<p>\Network 內操作,路徑由插件自行拼接。
  2. 只刪除固定文件名名單,不使用通配。
  3. 非空文件必須在開頭識別爲 SQLite 或 LevelDB 的 cookie 庫簽名纔會刪除,否則跳過並在狀態中說明。
  4. Partitions\temp-*(一次性會話)不處理,避免干擾進行中的登錄。
  5. 任何失敗只寫入狀態,不阻塞 DSH 啓動。

實現上,index.js 負責 Host 側清理、重試、複覈及 /dsh-cookie-sweep 路由;client.js 爲設置頁客戶端模塊。無額外運行時依賴,僅使用 Node 內置模塊。

配置

在 cordis.patch.yml 的 config 中:

鍵 默認 含義
enabled true 總開關;關閉後啓動不清理,手動清理也不可用
onStartup true 每次啓動自動清理一次
keepTrustTokens true 只清 Cookies,保留 Trust Tokens
extraPaths [] 額外的 Electron 網絡目錄(絕對路徑)

安裝與啓用

官方 README 提供兩種方式,任選其一。

方式一:在 profile 的 cordis.patch.yml 中插入 bundle 項:

- insert:
    - id: cookie-sweep
      name: 'dsh-cookie-sweep'
      config:
        enabled: true
        onStartup: true

方式二:讓插件管理器指向插件目錄:

plugin_manager install_bundle <本目錄的絕對路徑>

安裝前請自行閱讀倉庫源碼與 MIT 許可證。插件以當前 DSH 進程權限運行,只會按上述規則刪除指定路徑下的固定文件名。

典型用法

  1. 按上一節完成安裝,保持 enabled: true、onStartup: true(默認即如此)。
  2. 徹底退出 DSH(含托盤)後重新啓動,以便在文件未被當前進程佔用時完成啓動清理。
  3. 打開 設置 → Cookie 清理,確認各文件狀態;需要時可點「立即清理」。
  4. 若需保留 Trust Tokens,保持 keepTrustTokens: true;若有額外 Electron 網絡目錄,在 extraPaths 填入絕對路徑。

適用場景與注意

適合: 長期使用 DSH 桌面端、反覆遇到請求頭過大、431 或 “Web authentication failed” 的用戶;希望用 admin-security 類插件做啓動期 cookie hygiene 的場景。

已知限制(README):

  • 運行中的應用會獨佔主 Network\Cookies,因此本次運行期間啓動清理常顯示「被佔用」。徹底退出後再開,下一次啓動會在文件釋放前嘗試清理。
  • 主庫被佔用且應用隨後重建時,狀態可能爲「已重建」而非「已刪除」,不代表清理邏輯失敗。
  • 清理 cookie 庫後,可能需在下次啓動時重新授權一次;.dsh 裏的會話記錄不受影響。

DSH 生態強調「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。本文事實均來自上述 GitHub README 與 package.json。

結尾

dsh-cookie-sweep 把「刪 Cookies / Cookies-journal」從手工維護變成啓動可配、可觀測的固定步驟,降低 16KB 請求頭與 431 導致 Web 界面鎖死的概率。進一步瞭解可訪問社區目錄頁與 GitHub 倉庫:

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜