dongsheng123132/dsh-lineage ↗★ 0
dsh-lineage
Content-addressed data and action lineage evidence for DeepSeek Harness
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:dongsheng123132/dsh-lineage说明文档
阅读完整 README ↗dsh-lineage
面向 DeepSeek Harness 的内容寻址数据/动作血缘证据。
DSH 生态已有安全审计插件扫描“插件从哪里来”;dsh-lineage 解决的是另一层:为 artifact、已验证 fact 记录、action 和 report 建立本地可复核对象图。它不保存聊天记录或事实正文;节点只包含类型化 ID、工作区相对对象引用与期望 SHA-256。
图模型
节点类型:artifact、fact、action、report。
关系边从依赖对象指向来源:
derived-fromobserved-byproduced-bysupersedes
验证器会在 workspaceRoot 内解引用每个节点并重算哈希,明确区分:
verified:对象存在且哈希一致;missing:引用不存在;stale:对象存在但哈希已变化;- 悬空节点引用、关系类型错误与图循环。
缺失或陈旧对象绝不会被静默升级成事实。
Append-only 账本
输入是显式 JSONL。每个事件带 idempotencyKey,操作为 put-node 或 put-edge。一个 key 对应 ledgerDir 中一个不可变事件文件:
- 写入前验证完整假设图;
- 在显式 ledgerDir 内写临时文件;
- 回读临时文件;
- 通过硬链接原子发布到最终不可变槽位;
- 再次回读并校验 SHA-256。
同 key 同事件可以安全重放;同 key 不同内容会拒绝。既有事件永不修改;新 revision 使用新节点 ID,并通过 supersedes 连接旧节点。
安全边界
- ledger、JSONL、对象和报告路径都必须是工作区相对路径;拒绝目录穿越和 symlink 组件。
- 只向显式
ledgerDir或artifactDir写入。 - 事件只允许结构化 ID、类型、路径与哈希;claim、聊天、prompt、message、正文、text、凭证、token、Cookie 和 Authorization 等字段直接拒绝。
- 对象正文只参与哈希,不复制进账本或报告。
- 发布前拒绝自环、DAG 循环以及错误的 producer/observer/supersedes 类型关系。
- 闭包报告内容寻址并回读校验。
哈希只能证明对象身份,不能自动证明内容真实。插件只披露现有、缺失或变化的证据,不发明断言。
安装到 DSH
dsh plugin --profile lineage add github:dongsheng123132/dsh-lineage
注册四个工具:
dsh_lineage_inspectdsh_lineage_ingestdsh_lineage_querydsh_lineage_verify
命令行
dsh-lineage ingest --root D:/project --ledger ledger --events lineage.events.jsonl
dsh-lineage inspect --root D:/project --ledger ledger
dsh-lineage query --root D:/project --ledger ledger --node report:proof --direction upstream
dsh-lineage verify --root D:/project --ledger ledger --node report:proof --direction upstream --artifact-dir artifacts