🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

记忆遮蔽 Sacredbluedragon/dsh-memory-shield

DeepSeek Harness
Sacredbluedragon10 天前有提交已提供中文文档扫描:含敏感能力

在指定预设中屏蔽其他记忆插件,保持上下文干净

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Sacredbluedragon/dsh-memory-shield
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · skill
装得上吗
本站尚未做安装检查
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 82 处,展示前 57 条)
  • 读取本地文件
    packages/dsh-memory-core/_dryrun.mjs:214
    return readFileSync(path, "utf8");
  • 读取本地文件
    packages/dsh-memory-core/_dryrun.mjs:448
    ok("7d 两份文件各自独立落盘", existsSync(join(dirX, "memory.md")) && existsSync(join(dirY, "memory.md")), "两文件都存在", [existsSync(join(dirX, "memory.md")), exists
  • 读取本地文件
    packages/dsh-memory-core/_dryrun.mjs:470
    const coreSrc = readFileSync(new URL("./index.js", import.meta.url), "utf8");
  • 读取本地文件
    packages/dsh-memory-core/_dryrun.mjs:557
    existsSync(cfgBefore.json?.data?.livePath),
  • 读取本地文件
    packages/dsh-memory-core/_dryrun.mjs:564
    const clientSrc = readFileSync(new URL("./client.js", import.meta.url), "utf8");
  • 读取本地文件
    packages/dsh-memory-core/_dryrun.mjs:626
    const clientSrc = readFileSync(new URL("./client.js", import.meta.url), "utf8");
  • 写入本地文件
    packages/dsh-memory-core/_dryrun.mjs:710
    writeFileSync(file, broken);
  • 删除本地文件递归
    packages/dsh-memory-core/_dryrun.mjs:750
    rmSync(root, { recursive: true, force: true });
  • 发起网络请求
    packages/dsh-memory-core/client.js:17
    const jget = async (p) => (await fetch(API + p, { credentials: "same-origin" })).json();
  • 发起网络请求
    packages/dsh-memory-core/client.js:19
    (await fetch(API + p, {
  • 写入剪贴板
    packages/dsh-memory-core/client.js:98
    await navigator.clipboard.writeText(text);
  • 发起网络请求
    packages/dsh-memory-core/client.js:471
    fetch("/api/memory-shield/health", { credentials: "same-origin" })
  • 读取本地文件
    packages/dsh-memory-core/index.js:113
    try { return existsSync(lastCwdFile) ? readFileSync(lastCwdFile, "utf8").trim() : ""; } catch { return ""; }
  • 读取本地文件
    packages/dsh-memory-core/index.js:113
    try { return existsSync(lastCwdFile) ? readFileSync(lastCwdFile, "utf8").trim() : ""; } catch { return ""; }
  • 写入本地文件
    packages/dsh-memory-core/index.js:119
    mkdirSync(dirname(lastCwdFile), { recursive: true });
  • 写入本地文件
    packages/dsh-memory-core/index.js:120
    writeFileSync(lastCwdFile, value + "\n", "utf8");
  • 读取本地文件
    packages/dsh-memory-core/index.js:136
    if (!existsSync(memoryDir)) mkdirSync(memoryDir, { recursive: true });
  • 写入本地文件
    packages/dsh-memory-core/index.js:136
    if (!existsSync(memoryDir)) mkdirSync(memoryDir, { recursive: true });
  • 读取本地文件
    packages/dsh-memory-core/index.js:145
    items = readdirSync(d, { withFileTypes: true });
  • 读取本地文件
    packages/dsh-memory-core/index.js:530
    const html = readFileSync(htmlPath, "utf8");
  • 读取本地文件
    packages/dsh-memory-core/index.js:564
    orphanKey: s.memoryTracks === "full" && existsSync(join(memoryDir, "key.md")),
  • 执行外部命令来自配置/变量
    packages/dsh-memory-core/index.js:700
    const child = spawn(opener[0], opener[1], { detached: true, stdio: "ignore" });
  • 读取本地文件
    packages/dsh-memory-core/lib/runtime-config.js:40
    return pick(JSON.parse(readFileSync(liveConfigPath(memoryDir), "utf8")));
  • 写入本地文件
    packages/dsh-memory-core/lib/runtime-config.js:48
    writeFileSync(liveConfigPath(memoryDir), JSON.stringify(next, null, 2) + "\n", "utf8");
  • 读取本地文件
    packages/dsh-memory-core/lib/store.js:219
    const info = statSync(lockPath)
  • 读取本地文件
    packages/dsh-memory-core/lib/store.js:221
    const owner = JSON.parse(readFileSync(lockPath, 'utf8'))
  • 写入本地文件
    packages/dsh-memory-core/lib/store.js:245
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    packages/dsh-memory-core/lib/store.js:252
    writeFileSync(lockPath, LOCK_JSON())
  • 删除本地文件
    packages/dsh-memory-core/lib/store.js:261
    if (isStaleLock(lockPath)) rmSync(lockPath, { force: true })
  • 删除本地文件
    packages/dsh-memory-core/lib/store.js:272
    rmSync(lockPath, { force: true })
  • 执行外部命令固定命令
    packages/dsh-memory-core/lib/store.js:324
    const result = spawnSync('git', ['branch', '--show-current'], {
  • 执行外部命令固定命令
    packages/dsh-memory-core/lib/store.js:339
    const result = spawnSync('git', ['branch', '--format=%(refname:short)'], {
  • 读取本地文件
    packages/dsh-memory-core/lib/store.js:491
    days = readdirSync(dir)
  • 读取本地文件
    packages/dsh-memory-core/lib/store.js:502
    text = readFileSync(join(dir, `${day}.md`), 'utf8')
  • 读取本地文件
    packages/dsh-memory-core/lib/store.js:543
    return { text: readFileSync(path, 'utf8'), size: statSync(path).size }
  • 读取本地文件
    packages/dsh-memory-core/lib/store.js:543
    return { text: readFileSync(path, 'utf8'), size: statSync(path).size }
  • 写入本地文件
    packages/dsh-memory-core/lib/store.js:556
    writeFileSync(backup, text)
  • 写入本地文件
    packages/dsh-memory-core/lib/store.js:566
    writeFileSync(tmp, serializeEntries(entries))
  • 写入本地文件
    packages/dsh-memory-core/lib/store.js:567
    renameSync(tmp, path)
  • 写入本地文件
    packages/dsh-memory-core/lib/store.js:858
    mkdirSync(dirname(this.file), { recursive: true })
  • 读取本地文件
    packages/dsh-memory-shield/_dryrun.mjs:52
    const clientSrc = readFileSync(join(HERE, "client.js"), "utf8");
  • 读取本地文件
    packages/dsh-memory-shield/_dryrun.mjs:53
    const readmeSrc = readFileSync(join(HERE, "README.md"), "utf8");
  • 读取本地文件
    packages/dsh-memory-shield/_dryrun.mjs:64
    const indexSrc = readFileSync(join(HERE, "index.js"), "utf8");
  • 读取本地文件
    packages/dsh-memory-shield/_dryrun.mjs:133
    const src = readFileSync(new URL("./index.js", import.meta.url), "utf8");
  • 读取本地文件
    packages/dsh-memory-shield/_dryrun.mjs:141
    const isrc = readFileSync(new URL("./index.js", import.meta.url), "utf8");
  • 读取本地文件
    packages/dsh-memory-shield/_dryrun.mjs:142
    const csrc = readFileSync(new URL("./client.js", import.meta.url), "utf8");
  • 发起网络请求
    packages/dsh-memory-shield/client.js:39
    const res = await fetch(API + p, { credentials: 'same-origin' })
  • 发起网络请求
    packages/dsh-memory-shield/client.js:44
    const res = await fetch(API + p, {
  • 写入剪贴板
    packages/dsh-memory-shield/client.js:99
    await navigator.clipboard.writeText(props.text)
  • 发起网络请求
    packages/dsh-memory-shield/client.js:184
    const res = await fetch('/api/memory-core/pending', { credentials: 'same-origin' })
  • 发起网络请求
    packages/dsh-memory-shield/client.js:203
    const res = await fetch('/api/memory-core/entry', {
  • 发起网络请求
    packages/dsh-memory-shield/client.js:250
    fetch('/api/memory-core/files', { credentials: 'same-origin' })
  • 发起网络请求
    packages/dsh-memory-shield/client.js:533
    fetch(ORIGIN + '/api/memory-shield/health', { credentials: 'same-origin' })
  • 读取本地文件
    packages/dsh-memory-shield/index.js:35
    const pkg = JSON.parse(readFileSync(join(HERE, "package.json"), "utf8"));
  • 读取本地文件
    packages/dsh-memory-shield/index.js:47
    return JSON.parse(readFileSync(UI_CFG, "utf8"));
  • 写入本地文件
    packages/dsh-memory-shield/index.js:53
    try { mkdirSync(UI_DIR, { recursive: true }); } catch {}
  • 写入本地文件
    packages/dsh-memory-shield/index.js:54
    writeFileSync(UI_CFG, JSON.stringify(next, null, 2), "utf8");
扫描于 2026/10/31(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH preset 记忆遮蔽插件:在指定 preset 里挡掉其他记忆插件的上下文与工具,给会话一个干净上下文。

README

由 DeepSeek 最新模型翻译生成
dsh-memory-shield DSH preset 级记忆遮蔽工具集。一个 GitHub 仓库,两个独立 npm 包,按需组合。 两个包 | 包名 | 定位 | 状态 | | dsh-memory-shield | 纯遮蔽器 | ✅ 已发布 0.1.2(GitHub + npm)。挡住其他记忆插件往这个 preset 注入,让会话上下文保持干净。不自带记忆存储、写入、管理。默认关闭,装进配置档不影响任何会话,只在目标 preset 里显式开启。 | | dsh-memory-core | 遮蔽会话记忆 companion | 🚧 候选 0.1.0,未发布。给遮蔽会话加上三轨/五轨记忆(存储层参考 dsh-memory-evolve,作者 csyangwen)。宿主半与面板已就位,待验收后发布。 | 用户怎么选 - 只想挡其他记忆插件 → 只装 dsh-memory-shield(当前可用) - 想让遮蔽会话也有记忆 → 等 companion 发布后两个都装 - 后来才想要记忆 → 再装 companion,shield 不动、配置不动、会话不丢 设计原则 1. 默认关闭:bundle 形态装进配置档后不注册任何遮蔽(enabled: false),只在目标 preset 里显式开 enabled: true 才生效。
展开完整文档(README 剩余 1 节)
dsh-memory-shield

DSH preset 级记忆遮蔽工具集。一个 GitHub 仓库,两个独立 npm 包,按需组合。

两个包

| 包名 | 定位 | 状态 |
| dsh-memory-shield | 纯遮蔽器 | ✅ 已发布 0.1.2(GitHub + npm)。挡住其他记忆插件往这个 preset 注入,让会话上下文保持干净。不自带记忆存储、写入、管理。默认关闭,装进配置档不影响任何会话,只在目标 preset 里显式开启。 |
| dsh-memory-core | 遮蔽会话记忆 companion | 🚧 候选 0.1.0,未发布。给遮蔽会话加上三轨/五轨记忆(存储层参考 dsh-memory-evolve,作者 csyangwen)。宿主半与面板已就位,待验收后发布。 |

用户怎么选

- 只想挡其他记忆插件 → 只装 dsh-memory-shield(当前可用)
- 想让遮蔽会话也有记忆 → 等 companion 发布后两个都装
- 后来才想要记忆 → 再装 companion,shield 不动、配置不动、会话不丢

设计原则

1. 默认关闭:bundle 形态装进配置档后不注册任何遮蔽(enabled: false),只在目标 preset 里显式开 enabled: true 才生效。
2. 平行世界隔离:遮蔽会话的记忆和普通会话的记忆插件互不可见、互不可管。
3. 可逆:把插件从 preset 的 plugins: 里删掉,全局记忆插件立刻恢复。

已知限制

- 挡不住 pre-step user message 注入(openviking-memory 等)
- 挡不住消息级注入(meow-memory 的部分路径)

致谢

- 记忆存储层(companion 包 dsh-memory-core 内)参考并抄录自 csyangwen/dsh-memory-evolve,按 MIT 协议保留署名。
预览分享卡片长什么样 ↓Sacredbluedragon/dsh-memory-shield
分享 · DeepSeek Harness Hub
Sacredbluedragon/dsh-memory-shield

在指定预设中屏蔽其他记忆插件,保持上下文干净

回到顶部