前言¶
DeepSeek Harness 桌面版(Windows)每次启动,本地服务端口是随机的。会话 cookie 按 dsh-auth- 加 authority(127.0.0.1:端口)的哈希命名,但 Chromium 只按域名存 cookie,不认端口。每重启一次,127.0.0.1 下就多一条新 cookie,旧条目在约 30 天内不会被清。攒到七十条左右,请求头会超过 Node 默认的 16384 字节上限,请求在进业务代码前被拒,HTTP 431;界面上常见「Web 认证失败」,提示重装或禁用第三方插件——这与是否安装其它插件无关。社区插件 dsh-cookie-guard(维护者 kongbaiwin,分类 admin-security)针对这类堆积做定期清理,下面介绍其定位、机制与用法。
这是什么¶
dsh-cookie-guard 是 DeepSeek Harness 桌面版(Windows)专用插件:在 DSH 未独占 Cookies 库时,按策略删除过期的 dsh-auth-* cookie(或可选整库替换),避免请求头膨胀触发 431。插件本身不在 DSH 进程里直接删库——Chromium 运行时库被锁,只读都打不开——而是生成 guard.cmd、注册系统计划任务,并在用户登录后通过启动文件夹中的隐藏 VBS 延迟触发外部的 cleaner.mjs 执行清理。
问题与机制¶
为何会 431¶
- Cookie 名:
dsh-auth-+ 对127.0.0.1:端口算出的哈希。 - 存储维度:域名
127.0.0.1,端口变化不会覆盖旧 cookie。 - 结果:反复重启后同域下多条
dsh-auth-*同时随请求发出,总 header 体积超限。
插件如何调度¶
插件(跑在 DSH 里)
├─ 写一个 guard.cmd
├─ 建系统计划任务(每天固定时间)
└─ 往「启动」文件夹放一个隐藏 VBS(登录后 60 秒)
↓ 真正动手的是它
cleaner.mjs
├─ 先探测库锁:锁着就跳过,绝不硬来
├─ 按 dsh-auth- 前缀精确删,其它 cookie 一条不碰
└─ 把结果写进 guard.log
平台账户登录依赖本地 grant(x-dsh-auth-token 头),默认清理范围不包含这类凭据所依赖的其它站点 cookie;默认模式只删 dsh-auth- 前缀。
核心功能¶
装好后在 设置 → Cookie 清理 中配置:
| 项 | 说明 |
|---|---|
| 启用 | 关闭会一并撤掉系统计划任务和启动垫片 |
| 每天 / 每隔 | 二选一:每天为固定时刻(默认 20:00);每隔为每 N 分钟(1–1439) |
| 清多少 | 只清 dsh-auth-*(推荐)或整个 Cookies 文件替换 |
| 留备份 | 清理前复制一份,保留最近 3 份 |
| 立即清一次 | 登记为「等 DSH 完全退出后执行」,最多等 6 小时 |
卡片下方可查看计划任务状态、下次运行时间、登录垫片是否放置、Cookies 库大小及最近清理记录。
数据目录(DSH_HOME 默认为 %USERPROFILE%\.dsh,若设置了环境变量则以其为准):
<DSH_HOME>/cookie-guard/
├─ config.json 配置
├─ guard.cmd 计划任务调用的入口
├─ guard.log 每次清理的记录
└─ backups/ 备份(开启备份时)
安装与启用¶
只支持 Windows(依赖 schtasks 与启动文件夹)。桌面版 profile 名为 desktop;若命令行提示 profile "desktop" is managed exclusively by the Electron application,请改用 Harness 插件管理器安装。
方式一:从本地目录¶
解压 zip 后执行:
dsh plugin --profile desktop add <解压后的目录路径>
或在插件管理器中选择「从本地目录安装」。安装完成后 重启 DSH。
方式二:从 GitHub¶
dsh plugin --profile desktop add github:<你的用户名>/dsh-cookie-guard
将 <你的用户名> 换为仓库所属用户(例如维护者 kongbaiwin 时即为 github:kongbaiwin/dsh-cookie-guard)。非 desktop profile 时把 --profile desktop 换成对应 profile 名。
典型用法¶
- 按上文任一方式安装并重启 DSH。
- 打开 设置 → Cookie 清理,启用开关,选择「每天 20:00」或合适的「每隔 N 分钟」。
- 「清多少」保持推荐项「只清
dsh-auth-*」;需要回滚时可开启「留备份」。 - 若 DSH 已长期未关、库仍被占用,可点「立即清一次」,完全退出 DSH 后由外部 cleaner 执行(最多等待 6 小时)。
日志若出现「Cookies 仍被占用,跳过」,表示清理时刻 DSH 仍在运行——这是设计行为,不是失败。DSH 开着时计划任务触发的清理也会跳过;兜底依赖登录后启动文件夹垫片触发的那次。
适用场景与注意¶
适合谁:长期在 Windows 上使用 DSH 桌面版、频繁重启本地服务、曾出现或想预防「Web 认证失败 / 431」的用户。
限制(README 明确说明):
- DSH 运行时不会清库,避免硬删损坏数据。
- 登录触发器通过启动文件夹垫片实现(避免
ONLOGON计划任务需管理员权限);不需要时可删除启动文件夹中的DSH Cookie Guard.vbs。
已无法打开 DSH、无法装插件时:完全退出 DSH 后,手动删除:
%APPDATA%\@deepseek-ai\dsh-desktop\Network\Cookies
%APPDATA%\@deepseek-ai\dsh-desktop\Network\Cookies-journal
再启动 DSH,库会重建,账号登录不受影响;之后可再安装本插件以防再次堆积。
卸载:先在设置中关闭启用(会清理任务与垫片),再从插件管理器移除插件。
DSH 生态强调「一切皆插件」;社区目录站点与 DeepSeek / 幻方无官方从属关系。插件在 DSH 进程权限下运行并会写系统计划任务与启动项,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认符合本机安全策略。
参考链接¶
- 社区目录页:https://www.skillhub.cn/plugins/kongbaiwin/dsh-cookie-guard
- GitHub:https://github.com/kongbaiwin/dsh-cookie-guard