dsh-session-persistence-jsonl
github.com/deepseek-ai/deepseek-harness
v0.1.5-rc.2-harmony.1
会话与记忆
写入文件动态执行代码
description: "面向部署者和维护者的已发布 JSONL 会话持久化后端,用于选择、配置或调试带可选 Zstandard 压缩的每会话持久日志。" kind: "package-reference"
作者原文(英文)
JSONL durable session persistence backend for the DeepSeek Harness
中文简介由 DeepSeek 模型翻译,仅供参考。
检测报告
有一定能力。命中了若干能力模式,大多是插件正常工作时会用到的。
2需留意2一般20未命中
高关注需留意一般
能力清单
- 写入文件
writes-files需留意10 处命中lib/worker.cjs:11432await handle.writeFile(chunk);lib/index.js:667await mkdir(dir, {lib/index.js:1962await handle.writeFile(chunk);lib/index.js:2048await rename(staged, currentPath);- 看写入位置。写自己的配置目录是正常的,写系统目录不是。
- 动态执行代码
dynamic-code需留意1 处命中lib/worker.cjs:2946schema.callback = new Function("return " + schema.callback)();- 看 eval / new Function 的入参来自哪里。常量字符串和用户输入是两回事。
- 读取文件
reads-files一般15 处命中lib/worker.cjs:11107const bytes = await fs.readFile(path, signal);lib/worker.cjs:11268const bytes = await fs.readFile(path);lib/worker.cjs:11518const names = await internals.fs.readdir((0, node_path.dirname)(currentPath));lib/index.js:1604readFile: (path, signal) => readFile(path, signal === void 0 ? void 0 : { signal }),- 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
- 动态加载模块
dynamic-import一般3 处命中lib/worker.cjs:10696const kernel32 = (await import("koffi")).default.load("kernel32.dll");lib/index.js:467const kernel32 = (await import("koffi")).default.load("kernel32.dll");lib/index.js:1459`await import(${JSON.stringify(workerEntry.href)})`- 动态导入本身无害,但会让依赖关系难以静态审阅。
逐条扫描明细
| 能力 | 标识 | 关注度 | 命中次数 |
|---|---|---|---|
| 写入文件 | writes-files | 需留意 | 10 |
| 动态执行代码 | dynamic-code | 需留意 | 1 |
| 读取文件 | reads-files | 一般 | 15 |
| 动态加载模块 | dynamic-import | 一般 | 3 |
这份报告的口径
扫描读的是包里的源码,全程不执行第三方代码。 本次读了 18 个文件,扫描于 2026-10-14。 命中次数只说明源码里出现过这类调用,不说明行为好坏——一个插件读写文件 500 次和 1 次 都会被记为「读取文件」。这是能力清单,不是信任评分,也不是安全结论: 没扫出来的能力可能只是写法没被规则覆盖。
依赖安全公告
已查询这个插件声明的全部依赖,没有匹配到已公开的安全公告。(含 DSH 框架包在内的 @deepseek-ai/* 不作查询——那是运行时自己的问题,不是插件的。)