dsh-cookie-sweep: Clean up leftover desktop Cookies at startup to avoid 431 and Web authentication failures

前言

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 仓库:

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

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

Xiaoye