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

会话保险库 XiaoWind/dsh-vault

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

把对话与日志存进工作区,随文件夹迁移恢复

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · chat
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 67 天前
档位由哪些信号合成

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

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

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

读写/删除本地文件
查看扫描证据(共 20 处,展示前 17 条)
  • 读取本地文件
    lib/index.js:66
    return await realpath(path);
  • 读取本地文件
    lib/index.js:75
    await access(path);
  • 读取本地文件
    lib/index.js:415
    if (path === undefined || !existsSync(path)) imageIndexes.push(imageIndex);
  • 写入本地文件
    lib/vault.js:189
    await mkdir(dir, { recursive: true });
  • 写入本地文件
    lib/vault.js:192
    await writeFile(tmp, content, "utf8");
  • 写入本地文件
    lib/vault.js:194
    await rename(tmp, file);
  • 删除本地文件
    lib/vault.js:196
    await rm(tmp, { force: true }).catch(() => {});
  • 读取本地文件
    lib/vault.js:204
    await access(file);
  • 写入本地文件
    lib/vault.js:209
    await mkdir(dirname(file), { recursive: true });
  • 写入本地文件
    lib/vault.js:210
    await appendFile(file, `${JSON.stringify(headerToLine(header))}\n`, "utf8");
  • 写入本地文件
    lib/vault.js:217
    await appendFile(file, `${lines.join("\n")}\n`, "utf8");
  • 读取本地文件
    lib/vault.js:224
    text = await readFile(file, "utf8");
  • 读取本地文件
    lib/vault.js:338
    await access(file);
  • 读取本地文件
    lib/vault.js:366
    names = await readdir(dir);
  • 读取本地文件
    lib/vault.js:399
    const text = await readFile(workspaceFileFor(cwd), "utf8");
  • 读取本地文件
    lib/vault.js:416
    await access(workspaceFileFor(cwd));
  • 删除本地文件
    lib/vault.js:435
    await rm(tmp, { force: true }).catch(() => {});
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-commands@deepseek-ai/dsh-session@deepseek-ai/dsh-session-persistence@deepseek-ai/dsh-workspace
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 存放会话与日志
  • 随工作区迁移
  • 可移植保险库

DeepSeek Harness 插件:可移植的工作区保险库,存放 DSH 会话与日志

README

由 DeepSeek 最新模型翻译生成
dsh-vault 一个 DeepSeek Harness(DSH)插件,把所有对话和日志保存在工作区文件夹内部,让工作区文件夹成为自包含、可移植的存档。 安装 dsh-vault 后,每个工作区文件夹里会出现一个 dsh-session-vault/ 目录: my-project/ dsh-session-vault/ workspace.json # 工作区名称(标题)+ 保险库标记 sessions/ .jsonl # 每个会话一个追加式对话日志 - 每个 cwd 指向该工作区的会话都会在发生时被实时镜像到 dsh-session-vault/sessions/。 - 工作区标题被缓存在 dsh-session-vault/workspace.json 里。 为什么这样就能在新电脑上恢复 1. 把工作区文件夹(整个目录,包括 dsh-session-vault/)复制到新电脑。 2. 在新电脑上安装 DSH 和本插件。 3. 把复制的文件夹作为工作区打开。 打开时,dsh-vault 会把保险库里的每个会话导入回 DSH 持久化(并把每个会话的 cwd 重新绑定到文件夹当前所在位置),同时从 workspace.json 恢复工作区名称。 所有对话——包括工作区名称——都会回来。
展开完整文档(README 剩余 1 节)
dsh-vault

一个 DeepSeek Harness(DSH)插件,把所有对话和日志保存在工作区文件夹内部,让工作区文件夹成为自包含、可移植的存档。

安装 dsh-vault 后,每个工作区文件夹里会出现一个 dsh-session-vault/ 目录:

my-project/
dsh-session-vault/
workspace.json # 工作区名称(标题)+ 保险库标记 sessions/ .jsonl # 每个会话一个追加式对话日志

- 每个 cwd 指向该工作区的会话都会在发生时被实时镜像到 dsh-session-vault/sessions/。
- 工作区标题被缓存在 dsh-session-vault/workspace.json 里。

为什么这样就能在新电脑上恢复

1. 把工作区文件夹(整个目录,包括 dsh-session-vault/)复制到新电脑。
2. 在新电脑上安装 DSH 和本插件。
3. 把复制的文件夹作为工作区打开。

打开时,dsh-vault 会把保险库里的每个会话导入回 DSH 持久化(并把每个会话的 cwd 重新绑定到文件夹当前所在位置),同时从 workspace.json 恢复工作区名称。
所有对话——包括工作区名称——都会回来。

安装

从 GitHub 安装(立即可用,无需发布到 npm)
dsh plugin --profile web add git+https://github.com/XiaoWind/dsh-vault.git

或发布到 npm 后
dsh plugin --profile web add dsh-vault

dsh plugin 会把参数转发给 web profile 目录内的 pnpm,随后自动把该包加入
dsh.profile.bundles 层级列表(因为本包声明了 dsh.bundle.patch)。安装后请重启 Web 应用。

本插件注入 sessionPersistence、workspaceRegistry 和 commands 服务,因此只在包含这些 host 服务的 profile 中生效——官方自带的 web profile 就包含它们。

更新

把已安装的插件更新到 GitHub 最新版:

dsh plugin --profile web update dsh-vault

dsh plugin 会把参数转发给 profile 目录里的 pnpm update dsh-vault,把
github:XiaoWind/dsh-vault 重新解析到默认分支的最新 commit。锁文件按 commit 钉住 git 依赖,因此不必升级 version 也能更新。若 pnpm 因缓存没有拉到新 commit,可显式重新钉一次:

dsh plugin --profile web add github:XiaoWind/dsh-vault

更新后请重启 Web 应用——bundle 层在启动时组合,运行中的 Web 进程不会热更已安装的插件。

用法

保险库全自动运行,无需额外配置。提供了 /vault 斜杠命令用于查看和手动控制:

| 命令 | 作用 |
| /vault status | 查看已保险的工作区及每个工作区的会话数量。 |
| /vault restore | 立即为已知工作区导入保险库中的会话/标题。 |
| /vault export | 立即把当前持久化数据(重新)写入保险库文件。 |
| /vault help | 查看帮助。 |

行为说明

- 持续镜像。 会话每追加事件,就按顺序写入该工作区的 dsh-session-vault/sessions/.jsonl;会话销毁时会把文件重写为一份干净快照。
- 自动恢复。 启动时、以及每次打开工作区时,插件都会导入 DSH 持久化中缺失的保险库会话,并应用保险库里的标题。在全新电脑上把复制的文件夹作为工作区打开,同样会触发恢复。
- 路径可移植。 导入时会把会话的 cwd 重新绑定到工作区当前的绝对路径,因此复制到不同位置的文件夹也能干净恢复。
- 幂等。 已存在于持久化中的会话不会被重复导入;无需变更时,挂载/重命名不会产生任何写入。

配置

无需配置。插件以空 config 插入;保险库目录名(dsh-session-vault)和 JSONL 格式是固定的,以保证不同机器之间的保险库可以互换。

每个保险库的 workspace.json 还带有 kind: "dsh-vault" 标记,因此插件按内容识别保险库,而不只依赖目录名。

开发

语法检查
node --check lib/index.js
node --check lib/vault.js

插件是无第三方依赖的 ESM(lib/index.js + lib/vault.js),无需构建步骤。它导出 apply、inject、name,并由 bundle 层 cordis.patch.yml 插入到 profile 组合中。
JSONL 格式是自包含的、独立于 harness,因此 lib/vault.js 可直接做单元测试。

License

MIT
预览分享卡片长什么样 ↓XiaoWind/dsh-vault
分享 · DeepSeek Harness Hub
XiaoWind/dsh-vault

把对话与日志存进工作区,随文件夹迁移恢复

这是你的仓库?认领条目

回到顶部