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

历史保险库 leoainc-ops/dsh-history-keeper

DeepSeek Harness
leoainc-ops7 天前有提交已提供中文文档扫描:未发现敏感能力

加密备份并逐字节校验恢复会话历史与附件

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

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

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

状态速览

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

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

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

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

为 DeepSeek Harness 提供加密、可验证的历史记录:快照、校验并恢复你的 DSH 会话。不用 git,也不依赖外部二进制文件。

README

由 DeepSeek 最新模型翻译生成
dsh-history-keeper 你的 DeepSeek Harness 历史回来了——而且你能证明它。 Español: README-es.md 状态:pre-alpha(0.1.0 开发中)。 引擎已经能跑:snapshot、verify 和 restore 在真实 DSH 日志上运行,已在 8 个会话上逐字节验证。宿主插件集成和实时同步是接下来的里程碑。 问题 你的对话只存在一个地方:单台机器上的 ~/.dsh/sessions。这台机器一坏,对话就跟着没了。没有副本能说明为什么会这样——也没法证明你手上那份副本完好无损。 dsh-history-keeper 就是来解决这个问题的:捕获历史、加密、验证、恢复——逐字节还原。 这包括附件:粘贴的图片或文件不在会话日志里,而在 ~/.dsh/attachments。捕获的会话引用某个附件时,blob 会一并捕获,按文件名声称的哈希校验,再恢复到对话旁边。没有你粘贴过的图片,历史就是不完整的历史。
展开完整文档(README 剩余 1 节)
dsh-history-keeper

你的 DeepSeek Harness 历史回来了——而且你能证明它。

Español: README-es.md

状态:pre-alpha(0.1.0 开发中)。 引擎已经能跑:snapshot、verify 和 restore 在真实 DSH 日志上运行,已在 8 个会话上逐字节验证。宿主插件集成和实时同步是接下来的里程碑。

问题

你的对话只存在一个地方:单台机器上的 ~/.dsh/sessions。这台机器一坏,对话就跟着没了。没有副本能说明为什么会这样——也没法证明你手上那份副本完好无损。

dsh-history-keeper 就是来解决这个问题的:捕获历史、加密、验证、恢复——逐字节还原。

这包括附件:粘贴的图片或文件不在会话日志里,而在 ~/.dsh/attachments。捕获的会话引用某个附件时,blob 会一并捕获,按文件名声称的哈希校验,再恢复到对话旁边。没有你粘贴过的图片,历史就是不完整的历史。

它要做什么

| 里程碑 | 交付内容 |
| 0.1 | 从共享文件夹执行 snapshot、verify 和 restore,命令行无需 DSH 运行即可工作 |
| 1.0 | 机器间实时同步、按设备生成清单、显式冲突处理、设备配对与吊销 |

现在就试(从检出开始)

命令行只需要 Node——不需要 DSH,不需要 git,不需要外部二进制。

export KEEPER_PASSPHRASE='a passphrase of at least 8 characters'

node bin/keeper.js init --store ./vault
node bin/keeper.js snapshot --store ./vault --home ~/.dsh
node bin/keeper.js verify --store ./vault
node bin/keeper.js restore --store ./vault --home /tmp/restored-home

restore 在 sessions/ 下还原宿主自己的目录结构,校验每个哈希,绝不覆盖已有日志。

在 DSH 里使用

安装 bundle,然后在任意对话里运行一次 /keeper init。设置就这么多:它创建 vault(默认 ~/.dsh/history-keeper),在你还没选口令时生成一个,并写入 ~/.dsh/history-keeper.key。

不需要打配置档补丁。下面的 YAML 只用来覆盖默认值:

- insert:
- id: history-keeper
name: dsh-history-keeper
config:
store: C:\Users\you\keeper-vault # default: ~/.dsh/history-keeper
sessionsRoot: C:\Users\you\.dsh\sessions # default: ~/.dsh/sessions
autoSnapshotOnFlush: true # capture after each closed turn
debounceMs: 2000 # settle time before a capture runs
snapshotMinIntervalMs: 30000 # coalesce a burst of turns (0 disables)
maxChunkBytes: 1048576 # target chunk size; frames are never split
secretScan: true # quarantine a session that looks like it holds a credential
secretScanAllow: [] # rule ids to ignore, e.g. [openai-key]
secretScanEntropy: false # long high-entropy runs (noisy; off by default)
captureAttachments: true # capture the blobs sessions reference
autoCompact: true # checkpoint the chain when the policy approves
compactMinManifests: 50 # manifests since the last checkpoint before it acts
keyFile: C:\Users\you\.dsh\history-keeper.key
passphraseFile: null # wins over the key file and the env var
passphraseEnv: KEEPER_PASSPHRASE
deviceName: my-laptop

口令永远不会写进补丁:它来自 passphraseFile、init 创建的密钥文件,或 KEEPER_PASSPHRASE。然后在会话里: text /keeper init create the vault (generates a passphrase when none is configured) /keeper status what the vault holds, what is pending, what this machine is missing /keeper snapshot capture new session bytes now /keeper verify check every object, hash and chain /keeper help

restore 故意不在 DSH 内部提供:它会写入正在使用的会话存储,而运行中的宿主不会察觉。它始终是命令行操作,需要先关闭 DSH —— 这正是恢复工具的要点。

密钥闸门

捕获时,只要会话的新增字节看起来像凭据,就绝不会发布。闸门会隔离,而不是脱敏,因为改写字节会破坏逐字节一致的承诺:该会话不写入任何内容,/keeper snapshot 只报告命中的规则和行号 —— 绝不报告具体的值。想强行发布,用 --force;想静默某条规则,用 --allow-rule <id>。

它能识别结构化密钥(API key、token、密钥赋值、私钥块)。写在散文里的密码无法靠模式识别:闸门是安全网,不是保证。

最小配置

每个键都是可选的。完全不写 config 时,插件会在 ~/.dsh/history-keeper 找存储,从 ~/.dsh/sessions 读会话,存储不存在时告诉你如何创建。

时间戳以 UTC 存储(同一时刻在不同机器上必须无歧义),显示时转换成本地时区,并附上偏移量。

设计原则

1. 不依赖外部二进制。 只用 node: —— 不需要 git,不需要 age,什么都不用装。
2. 失败即关闭。 没有密钥就不同步。冲突时绝不写入。加密绝不降级为明文。
3. 绝不覆盖,绝不删除。 恢复只做创建;已存在且内容不同的,一律搁置到一边。
4. 只追加,可验证。 每个对象都不可变,并以内容命名;分块链让任何人都能审计完整性,即使没有密钥。
5. 每台设备各存副本,绝不共用可变文件。
6. 传输层保持简单。 文件夹(或任何服务商)只搬运 blob:不解析、不排序、不合并。
7. 你可以亲自审计。 用 verify 和一份可读的报告 —— 不必信任我们。

隐私历史记录离开本机之前就已加密,元数据同样加密:文件名和大小不会暴露你在做哪些项目。没有密钥,存储内容不可读。没有服务器,也没有账号。

安装

尚未发布。0.1 发布后: sh
dsh plugin --profile web add dsh-history-keeper

兼容性

基于 DeepSeek Harness 0.2.0-rc.2 开发。包内声明了 engines.dsh,宿主版本不兼容时会直接拒绝,而不是带病运行。

开发 sh
node --test "test/*.test.mjs" # unit tests, no dependencies to install
npm run guard # refuses committed session logs

设计说明与路线图见 docs/。发布历史(包括从未发布的版本及其原因)见 CHANGELOG.md。

许可

本仓库采用分拆许可模式:

- 源代码(bin/、lib/、scripts/、test/、package.json、cordis.patch.yml):采用 PolyForm Noncommercial License 1.0.0 许可。见 LICENSE-CODE。
- 文档(README.md、README-es.md、CHANGELOG.md、docs/):采用 CC BY-NC 4.0 许可。见 LICENSE-DOCS。

未经作者明确许可,不得将源代码用于商业用途。

许可变更历史

0.1.0-rc.1 到 0.1.0-rc.7 各版本以 MIT 发布,已获取这些版本的人仍可按 MIT 使用。上述分拆模式从 0.1.0-rc.9 起生效;0.1.0-rc.8 因误用 MIT 元数据发布,已废弃。截至 2026-10-24,本项目没有 fork。完整时间线、fork 状态与贡献条款见 LICENSING-HISTORY.md。
预览分享卡片长什么样 ↓leoainc-ops/dsh-history-keeper
分享 · DeepSeek Harness Hub
leoainc-ops/dsh-history-keeper

加密备份并逐字节校验恢复会话历史与附件

回到顶部