dsh-auth-cookie-guard

DSH PLUGIN工具与能力

仓库 Ethan1999991231/dsh-auth-cookie-guard · npm dsh-auth-cookie-guard

工具与能力 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

修复 DeepSeek Harness 桌面端反复开关后 dsh-auth cookie 堆积、窗口打不开的问题,自动回收旧端口 Cookie 并自愈已溢出的请求头。

一句话选型结论

按资料字段整理

dsh-auth-cookie-guard 是工具与能力类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 4 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类工具与能力 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-11-08 创建于 2026-11-02
README 7.7 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:Ethan1999991231/dsh-auth-cookie-guard#114514
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.2-rc.1,Node.js 要求 >=20;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.2-rc.1版本不匹配时安装会报错
Node.js 要求>=20来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-auth-cookie-guard可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-auth-cookie-guard:为 DeepSeek Harness 清理认证 Cookie 堆积的 DSH plugin

  • 回收旧端口认证 Cookie
  • 请求头溢出自愈重试
  • 滞回阈值避免误登出
  • 状态诊断写入 state.json

适用场景

存储

上游标签

dsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-11-11): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 结论说明 静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。
  • 风险计数 严重 0 / 高 0

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.2-rc.1),按版本装不容易报错。
  • 列出了 4 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在工具与能力场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-auth-cookie-guard当前 L5 · 运行验证通过 低风险 0 0.2.2-rc.1 有
huashu-design 未做沙盒验证 未标注 3.0 万 未标注 有
loopx 未做沙盒验证 未标注 6,233 未标注 无
agy-staff 未做沙盒验证 未标注 870 未标注 有
dsh-startup-screen 未做沙盒验证 未标注 633 未标注 有
minara-skills L4 · 沙盒安装通过 中风险 360 未标注 有

仓库档案

工具与能力
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方Ethan1999991231仓库 dsh-auth-cookie-guard · 默认分支 main
分类工具与能力storage
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-11-02 · 2026-11-08最后推送 2026-11-08
本站收录2026-11-08首次进入本站目录的时间

README 全文

7.7 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-auth-cookie-guard

修复 DeepSeek Harness 反复开关约 71 次后窗口打不开的问题。
A Host plugin that stops the port-bound dsh-auth-* browser cookies from piling up
across desktop launches — and heals a profile that already hit the HTTP header limit.


故障链路(源码定位)

环节 事实 出处
每次启动换端口 桌面壳用 --port 0 拉起 Host,端口由系统随机分配 dsh-desktop-host/lib/index.js → args: ["--no-open","--host","127.0.0.1","--port","0"]
Cookie 绑定 host:port cookieName(authority) = 'dsh-auth-' + base64url(sha256(authority)),authority = '127.0.0.1:' dsh-client-connection/lib/index.js:335 cookieName()、:307 requestAudience()
有效期 30 天 cookieMaxAgeDays: z.natural().min(1).default(30) dsh-client-connection/lib/index.js:1017
从不清理旧端口 只有新 cookie 的 Set-Cookie,没有任何过期旧 cookie 的代码 同上,authorizeIndex / authorizeConnect
浏览器按 host 聚合 Cookie 不区分端口,所有历史端口的 dsh-auth-* 都会进同一个 127.0.0.1 的 Cookie 请求头 RFC 6265
服务端 16KB 上限 createServer(listener) 未传 maxHeaderSize → Node 默认 16384 字节,超限直接 HPE_HEADER_OVERFLOW,窗口白屏 / 加载失败 dsh-host-webserver/lib/index.js:412

算一下阈值:单条 Cookie 头约 225 字节(名字 52 + 值 170 + 分隔符),请求其余头部约 460 字节,
(16384 - 460) / 225 ≈ 70.8 → 第 71 次开关正好越界,与现象完全吻合。

插件做了什么

  1. 回收(治本):dsh-host-frontend-static 对首页和每个静态资源都会调用 connection.authorizeIndex(req,res)。
    插件包裹该方法,在写响应时给所有「不属于当前端口」的 dsh-auth-* Cookie 追加
    Set-Cookie: =; Max-Age=0; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT。
    一旦 jar 超过 4 条(见下面的滞回阈值)就回收到只剩当前端口那一条,上限被钉死在 5 条以内,不会累积到 71。
  2. 自愈(治已坏):已经堆满的旧 jar 请求根本到不了业务代码,但 Node 仍会抛出
    clientError + HPE_HEADER_OVERFLOW,并带 err.rawPacket(被截断的原始请求字节,里面有 Cookie 名和原始 URL)。
    插件据此直接回 303 See Other 到原 URL(保留 ?token=),并逐条带上过期 Cookie;
    浏览器丢弃这些 Cookie 后自动重试,几跳之内就能正常打开,不需要手动清缓存。
  3. 诊断:状态落到 $DSH_HOME/auth-cookie-guard/state.json,含回收次数、见过的最大 jar、溢出修复次数。

安全边界(避免误删别人的登录态)

  • 滞回阈值 REAP_ABOVE = 4:jar 里 dsh-auth-* 不超过 4 条时完全不动手。单次启动稳定在 1 条,
    只有反复开关才会超过阈值;这样同一 DSH_HOME 下并行运行的另一个 Harness 实例(它有自己的 authority Cookie)不会被误登出。
  • 只清自己发出的那批名字:过期头只为「本次请求 Cookie 头里真实出现过的名字」下发,不会凭猜测构造名字。
  • 同主机校验:只有当请求 authority 的 hostname 等于本监听器 hostname(webServer.getOrigin())时才回收,
    远程 / 局域网 authority 的请求不会触发清理。
  • Secure 对齐:监听器是 https 时,过期 Cookie 同样带 Secure(否则浏览器会拒绝覆盖原 Secure Cookie)。

插件完全防御式实现:不改请求业务逻辑、不改配置文件、ctx.effect 卸载时还原被包裹的方法;
内部结构变化时退化为 no-op 并打日志,不会把应用弄坏。

安装

需要 DeepSeek Harness 0.2.1-rc.5 或更新(依赖 connection.browserAuth 与公开的 webServer.server)。

# 1) 从 npm
dsh plugin --profile desktop add dsh-auth-cookie-guard

# 2) 从 Release 里的 tarball
dsh plugin --profile desktop add ./dsh-auth-cookie-guard-1.0.0.tgz

# 3) 从本地源码(link,改完即时生效)
dsh plugin --profile desktop add ./

装完重启一次 Harness。之后可以看 $DSH_HOME/auth-cookie-guard/state.json 确认它在干活:

{ "reaped": 12, "reapEvents": 5, "overflowRepairs": 0, "maxJarSeen": 3, "errors": 0 }

overflowRepairs 大于 0 说明某次启动撞上了已经堆满的旧 jar,被自愈救回来了。

验证

npm test        # 真起 node:http 服务,10 项断言:阈值、保留当前 Cookie、同主机保护、
# 过期属性、16KB 溢出自愈、卸载还原
npm run check   # node --check index.js

测试不依赖任何 npm 包,也不读写真实 cookie jar(全部用伪造的 dsh-auth-* 名字)。
tarball 里也带了这套测试,所以拿到包的人可以直接验证:

tar -xzf dsh-auth-cookie-guard-1.0.0.tgz && cd package && node test/guard.test.mjs

构建发布

node build.mjs --git                # 产出 release/ 三项,并给 release 树建好首个提交
node build.mjs --owner 你的GitHub用户名   # 额外写入 repository/homepage/bugs

产出 release/ 下三样东西:

产物 用途
dsh-auth-cookie-guard/ 干净的 git-ready 目录树(--git 时已初始化并提交),推 GitHub 用
dsh-auth-cookie-guard-1.0.0.tgz npm 包,dsh plugin add / npm i 用
dsh-auth-cookie-guard-1.0.0-source.zip 同一棵树的压缩包,直接上传 GitHub
SHA256SUMS.txt 两个压缩包的校验和

--owner 会写入 repository / homepage / bugs 三个字段;不传则省略它们(npm 允许,可以直接 npm publish)。
重复执行 build.mjs 会重建 release/,但里面已有的 .git 会被保留(先挪到同盘暂存目录再挪回),
所以可以「改代码 → 重新 build → 继续提交」,历史不会丢。

两条 GitHub Actions 都在仓库里:

  • .github/workflows/ci.yml — 每次 push / PR 在 Node 20、22、24 上跑 node --check 与 npm test。
  • .github/workflows/release.yml — 推 v* tag 时重新构建,并把 tgz、源码 zip、SHA256SUMS.txt 附到 GitHub Release。

> 仓库里的 package.json 用 @local/dsh-auth-cookie-guard 这个名字,是为了能在本地 profile 里
> 以 link: 方式装上、同时不和已发布的 npm 包名冲突。build.mjs 会把包名、以及 cordis.patch.yml
> 里引用它的那一行一起改写成发布名。

目录结构

index.js                 Host 插件本体(回收 + 溢出自愈 + 诊断落盘)
cordis.patch.yml         bundle 插入行(loader 行 id: dsh-auth-cookie-guard)
locale/{en,zh}.json      插件管理页标题与说明
icon.svg                 插件图标
test/guard.test.mjs      回归测试(零依赖)
build.mjs                发布构建脚本
.github/workflows/ci.yml     Node 20/22/24 上跑语法检查与测试
.github/workflows/release.yml 推 tag 时构建并附产物到 Release
.gitattributes           统一 LF 行尾

说明

  • 这不是 DeepSeek Harness 官方代码;官方修复方向应是「启动时清理与本实例 authority 不一致的
    dsh-auth-* Cookie」,或把 cookie 名字里的端口去掉(cookie 本就不区分端口)。
  • 插件只操作 dsh-auth- 前缀、且出现在当前请求 Cookie 头里的名字,不读凭据文件、不联网。
  • 同一 profile 里不要同时装本地 link 版(@local/dsh-auth-cookie-guard)和发布版
    (dsh-auth-cookie-guard):两者的 loader 行 id 相同,会触发 duplicate loader entry id 导致启动失败。
    要切到发布版就先删掉本地版,反之亦然。

MIT License.

常见问题

9 问
答案由本站依据条目字段整理,不引用上游原文
dsh-auth-cookie-guard 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:Ethan1999991231/dsh-auth-cookie-guard#114514` 即可。对应的 npm 包名是 `dsh-auth-cookie-guard`。

dsh-auth-cookie-guard 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-auth-cookie-guard 安全吗?

低风险。静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。

dsh-auth-cookie-guard 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-auth-cookie-guard 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.2-rc.1。

dsh-auth-cookie-guard 需要什么运行环境?

Node.js >=20。环境不满足时安装会失败,建议先确认本机版本。

dsh-auth-cookie-guard 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-auth-cookie-guard 有哪些功能?

回收旧端口认证 Cookie、请求头溢出自愈重试、滞回阈值避免误登出、状态诊断写入 state.json。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

2 条
不同作者的仓库分开列,请确认你要装的是哪一个
工具与能力
按星标排序,可作替代方案

huashu-design

huashu-design

在 DeepSeek Harness 里说一句话,就能拿回可交付的设计:网页、App 原型、可编辑 PPTX、动画与信息图,自带 84 种风

未标注验证等级 3.0 万 星

loopx

loopx

LoopX 是面向长周期 Agent 的本地优先控制平面,作为 DSH plugin 为 DeepSeek Harness 提供持久目标、证

未标注验证等级 6,233 星

agy-staff

agy-staff

把 Google Antigravity CLI 作为快速 Gemini 员工接入 DSH,提供子代理侧边栏、编排模式与多种角色技能。

未标注验证等级 870 星

dsh-startup-screen

dsh-startup-screen

DeepSeek Harness 的启动界面与启动动画插件。

未标注验证等级 633 星

dsh-blender-plugin

dsh-blender-plugin

让 AI 模型通过直连 TCP 通道实时驱动 Blender 的 DSH plugin:15 个工具覆盖视口取帧、任意角度渲染、内循环搜索、

未标注验证等级 211 星

Ethan1999991231 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-11-11。