DeepSHPlugins
dsh-depguard 项目预览
GITHUB / COMMUNITY PROJECT

dsh-depguard

生态与开发JavaScriptMIT

依赖拓扑安全:装前预测 + 装后检测 @deepseek-ai/dsh-* 多副本、版本漂移与插件私包,防 Symbol 键冲突崩溃(Cannot read properties of undefined (reading 'prepare'))。

1 StarsDeLightor 更新时间 2026-08-16
访问 GitHub 仓库
dsh-depguard 项目预览

项目介绍

中文

依赖拓扑安全:装前预测 + 装后检测 @deepseek-ai/dsh-* 多副本、版本漂移与插件私包,防 Symbol 键冲突崩溃(Cannot read properties of undefined (reading 'prepare'))。

English

Dependency-topology guard: pre-install conflict prediction and post-install detection of duplicate @deepseek-ai/dsh-* copies, version drift, and vendored core services that cause Symbol-key crashes like "Cannot read properties of undefined (reading 'prepare')".

项目信息与收录信号

快照 2026-09-11
作者 / 组织
DeLightor
仓库
DeLightor/dsh-depguard
GitHub Stars
1
Forks
1
开发语言
JavaScript
许可证
MIT
最近推送
2026-08-16
Manifest
数据中检测到声明

公开仓库不自动等于可商用;许可证与当前兼容性以原项目文档为准。Manifest 和数据评分不构成安装安全认证。

数据评分

59/ 100
维护活跃
82
文档与实用信息
85
生态关注度
24
安装便捷信号
75
项目声明信号
100

README 含完整安装与使用说明;关注度尚低(1)。

评分来自已有数据快照的五维模型,仅作浏览参考,不是实际使用评测或安全检测结论。

安装与使用

所有项目资料与许可均以对应 GitHub 仓库为准。

dsh plugin --profile web add github:DeLightor/dsh-depguard

复制命令不会自动执行。请先阅读仓库文档,确认环境要求与许可证。

项目截图

仓库 README

GitHub 原文

已保存的仓库文档快照;文档抓取时间未记录,可能与上方目录介绍处于不同版本。安装前请核对当前仓库说明。

dsh-depguard

English | 中文

装前预测 + 装后检测 DeepSeek Harness 的依赖拓扑冲突,防止 Symbol 键崩溃。

你装插件时崩过这个吗?

Cannot read properties of undefined (reading 'prepare')

根因是 discussion #1337:@deepseek-ai/dsh-tools 等核心包出现第二份物理副本时,JS Symbol 键(每次求值都不同)会让 ctx.tools[scheduler] 变 undefined,一次工具调度就崩,还会在会话里留下孤儿 tool_calls,之后每轮 400 INVALID_REQUEST 死锁。

本插件只做检测 + 修复建议,绝不自动修复——修复交给 dsh-undo-plugin、dsh-boot-guard 等第三方插件,保持模块化。

两个工具

dsh_depguard_predict — 装前预测(社区空白)

装新插件之前,静态拉取它的 manifest(npm 包 / github:owner/repo / 本地路径),与当前 runtime 的 @deepseek-ai/dsh-* 基准比对:

信号风险
dependencies 直接含核心包🔴 CRITICAL → NOT_RECOMMENDED(私包 = 第二份副本)
peerDependencies 版本范围与 runtime 不符🟡 WARNING → CAUTION(版本漂移风险)

预测基于静态声明,实际解析受 lockfile/nodeLinker 影响——装上后请再跑 check 确认。

dsh_depguard_check — 装后检测

扫描落盘依赖拓扑,三项检测:

检测严重度说明
duplicate-copyCRITICAL/WARNING同一核心包多份物理副本(realpath 去符号链接;同名同版本也算——Symbol 冲突本质是两次求值)
version-driftWARNING副本版本与 runtime 基准不一致
vendored-serviceCRITICAL社区插件把核心包打进自己的 node_modules(应 peerDependencies)

每条 finding 带 fix 字段,给出修复建议命令(交给第三方修复插件执行)。

安装

# npm(推荐,预构建免授权)
dsh plugin --profile web add dsh-depguard

# GitHub 源码
dsh plugin --profile web add github:DeLightor/dsh-depguard

# 本地开发
dsh plugin --profile web add ./dsh-depguard

重启后,在会话里说「检查一下我的插件依赖」或「装 X 之前预测一下冲突」即可。

测试

node --test   # 11 个用例:多副本/漂移/私包/符号链接去重/装前预测

安全声明

  • 只读:不写任何 profile 文件、不改配置、不自动跑 pnpm。
  • 零依赖:dependencies 为空;@deepseek-ai/* 一律 peerDependencies——本插件自己绝不引入第二份核心包。
  • 检测 ≠ 修复:发现问题只报告 + 给建议,动手由你或第三方回滚插件完成。

被收录于

awesome-dsh-plugin 精选列表(PR 提交后),可通过 dsh-market 插件市场与 dsh-find-plugin 检索安装。

License

MIT


English

Predict (pre-install) and detect (post-install) dependency-topology conflicts in DeepSeek Harness to prevent Symbol-key crashes like Cannot read properties of undefined (reading 'prepare').

  • dsh_depguard_predict — fetch a target plugin's manifest and compare its dependencies/peerDependencies against your runtime baseline before installing.
  • dsh_depguard_check — scan the on-disk dependency tree for duplicate @deepseek-ai/dsh-* copies (realpath-deduped; same-name-same-version still counts — Symbol keys differ per module evaluation), version drift, and plugins vendoring core services.

Detection + fix suggestions only; remediation is left to third-party plugins (dsh-undo-plugin, dsh-boot-guard). Read-only, zero runtime dependencies, @deepseek-ai/* as peerDependencies only.

dsh plugin --profile web add dsh-depguard
node --test   # 11 tests

MIT

使用前核对

安装步骤、兼容版本与授权范围以原项目当前文档为准。Stars 和评分是快照中的导航信号。

安装与排错 · 项目问题反馈

同类项目