返回目录

dsh-runtime-log

精选清单收录维护状态: 活跃

wforevery/dsh-runtime-log

把 DSH 的警告与错误持久化到磁盘,重启后仍可回溯,方便事后定位崩溃原因。

前往 GitHub
$ dsh plugin add dsh-runtime-log

54

星标

4

Fork

JavaScript

语言

MIT

许可证

2026-11-11

创建于

2026-11-11

最近推送

MIT 许可的 DSH bundle,把宿主的 WARN / ERROR 记录持久化到本机可轮转的 JSONL 文件,带有界缓冲、尽力脱敏与自动清理 —— 仅限 Windows x64、DSH 0.2.2-rc.1、Node 24。

DSH 适配

原生运行时

作者声明

安全审计

未审计

最后核验

2026-11-14

许可证

MIT

01它能帮你完成什么?

  • 在 DSH 宿主重启之后排查问题,此时进程内的 WARN / ERROR 输出早已消失

    `$DSH_HOME/runtime-log`(没有则 `~/.dsh/runtime-log`)下的 JSONL 文件,WARN / ERROR 记录跨进程重启保留

    需要在事后查看宿主告警与错误的 Windows 桌面版 DSH 用户

  • 让长时间运行的 DSH 宿主上的日志体积可控

    每次运行一个 `host-<pid>-<uuid>.jsonl`,默认每段 5 MiB 加 3 个轮转段,并在启动时执行 retention 清理旧 run

    没法天天盯着跑 DSH 那台机器磁盘用量的运维者

  • 看清某个插件在 DSH 宿主里何时启动、何时停止

    名为 `dsh-runtime-log` 的生命周期 marker 记录,message 以 `[plugin-event:start]` / `[plugin-event:stop]` 开头,与普通告警走同一个 sink

    要确认某个 bundle 是否干净加载与卸载的插件作者和维护者

02如何接入 DeepSeek Harness?

前置条件

  • DSH 0.2.2-rc.1 —— README 的兼容表里这是唯一支持的 DSH 版本,Cordis 4.1.0 由该版本提供
  • Node.js >=24.16.0 <25
  • Windows x64 —— bundle 的平台门禁只允许 `win32`
  • 包尚未发布到 npm,只能以 profile 依赖的方式指过来

安装步骤

  1. 01

    把某个 profile 的依赖指向本包,并把 `dsh-runtime-log` 加入该 profile 的 `dsh.profile.bundles`

  2. 02

    完整退出 DSH 再重新启动 —— 插件运行时不修改 profile,新增 bundle 必须完整重启才生效

验证接入成功

  • 重启后在 runtime-log 目录(`$DSH_HOME/runtime-log`,没有则 `~/.dsh/runtime-log`)里应出现 `host-<pid>-<uuid>.jsonl`,并检查其中是否有 name 为 `dsh-runtime-log`、message 以 `[plugin-event:start]` 开头的记录

03DSH 适配与能力边界

DSH 适配原生运行时

加入 profile 的 `dsh.profile.bundles` 的 DSH bundle,注册一个 Cordis logger exporter,把 WARN / ERROR 记录写到本机 JSONL 文件

  • WARN / ERROR 写入 JSONL

    经过 DSH Cordis logger 的记录→写进本次运行文件的 JSONL 行;INFO 与 DEBUG 被忽略

    在本机磁盘的 runtime-log 目录里写日志文件
  • 有界队列与最旧记录丢弃

    压力下成批到来的 WARN / ERROR 记录→队列默认上限 2,000 条 / 1 MiB(含正在写入的批次),压力下丢弃最旧记录并计数

    压力下记录会被丢弃,只留下丢弃计数而不是那些行
  • 文件轮转与跨运行 retention

    不断增长的每次运行日志文件→默认 5 MiB 一段、3 个轮转段,启动时再执行 retention,目标上限为 16 个 run 文件(含轮转)

    启动时删除旧 run 文件,但不会删其它进程的 live / unknown run
  • 尽力脱敏

    有限类型的日志参数→格式化后的记录,识别到的密钥键、Bearer / API key 会被脱敏;原始 args 对象不保存

    脱敏是尽力而为,自由文本、未知编码或自定义错误内容里的密钥仍可能写进日志
  • 可配置的 sink 上限

    bundle 的 `config` 字段(`directory`、`maxFileBytes`、`maxFiles`、`maxQueueRecords`、`maxQueueBytes`、`maxEntryBytes`、`flushIntervalMs`、`drainTimeoutMs`)→覆盖默认值;无效或 hostile 的配置回退到默认值而不是抛错

    相对的 `directory` 会静默回退到默认目录

04适合谁?何时不该用?

适合

  • 需要在事后查看宿主告警与错误的 Windows 桌面版 DSH 用户
  • 没法天天盯着跑 DSH 那台机器磁盘用量的运维者
  • 要确认某个 bundle 是否干净加载与卸载的插件作者和维护者

不适合

  • 0.1.0 的支持声明很窄:仅 DSH 0.2.2-rc.1、该版本提供的 Cordis 4.1.0、Node >=24.16.0 <25、Windows x64。Node 20–23、Node 25+、其它 DSH 版本、Mac/Linux 与 Windows ARM64 都明确不在支持范围内,bundle 平台门禁也只允许 `win32`。
  • 只覆盖经过 Cordis logger 的记录:不覆盖 console / stdout / stderr 的全部内容、session JSONL、工具执行结果,以及插件加载前的消息。
  • 日志不是崩溃安全的:强制结束、断电或关闭超时都可能丢失末尾缓冲记录;close 超时的那次 run 会一直留在保护集合里直到进程退出。
  • 这些文件是本机敏感诊断材料,应按敏感日志保管;脱敏无法保证清除自由文本或自定义错误内容里的密钥。

05兼容性、维护与安全提示

  • 0.1.0 的支持声明很窄:仅 DSH 0.2.2-rc.1、该版本提供的 Cordis 4.1.0、Node >=24.16.0 <25、Windows x64。Node 20–23、Node 25+、其它 DSH 版本、Mac/Linux 与 Windows ARM64 都明确不在支持范围内,bundle 平台门禁也只允许 `win32`。
  • 只覆盖经过 Cordis logger 的记录:不覆盖 console / stdout / stderr 的全部内容、session JSONL、工具执行结果,以及插件加载前的消息。
  • 日志不是崩溃安全的:强制结束、断电或关闭超时都可能丢失末尾缓冲记录;close 超时的那次 run 会一直留在保护集合里直到进程退出。
  • 这些文件是本机敏感诊断材料,应按敏感日志保管;脱敏无法保证清除自由文本或自定义错误内容里的密钥。
2026-11-112026-11-11v0.1.0

MIT · 仅有 README 证据,最新版本 v0.1.0,未做安全审计

06常见问题

在 DeepSeek Harness 里怎么安装 dsh-runtime-log?

把某个 profile 的依赖指向本包,并把 `dsh-runtime-log` 加入该 profile 的 `dsh.profile.bundles`,然后完整退出 DSH 再重新启动。README 说明插件运行时不修改 profile,新增 bundle 必须完整重启才生效,而且这个包目前还没发布到 npm。

它支持哪些 DSH、Node 与系统版本?

0.1.0 的支持声明是:仅 DSH 0.2.2-rc.1、该版本提供的 Cordis 4.1.0、Node.js >=24.16.0 <25,以及 Windows x64。Node 20–23、Node 25+、其它 DSH 版本、macOS/Linux 与 Windows ARM64 都明确不在支持范围内,bundle 的平台门禁也只允许 `win32`。

日志写到哪,怎么确认它已经在跑?

默认目录是 `$DSH_HOME/runtime-log`,没有则 `~/.dsh/runtime-log`;`directory` 可以配绝对路径(支持 `~`)。每次运行写一个 `host-<pid>-<uuid>.jsonl`,默认每段 5 MiB、3 个轮转段;生命周期 marker 是一条 name 为 `dsh-runtime-log`、message 以 `[plugin-event:start]` 开头的普通 WARN 记录。

它会记录 DSH 宿主打印的所有内容吗?

不会。只有经过 Cordis logger 的记录才会被保存;console / stdout / stderr 的全部内容、session JSONL、工具执行结果,以及插件加载前的消息都不覆盖。脱敏是尽力而为,自由文本、未知编码或自定义错误内容里的密钥仍可能落进文件,强制结束或断电也可能丢掉缓冲区末尾。

08数据与来源

  • 作者声明github.combcf9fa9bd547…

    把 DSH Cordis logger 的 WARN / ERROR 记录写到本机 JSONL,供进程重启后排查。插件只注册 logger exporter,不读取会话历史或凭据,不联网,不提供模型工具、UI 或 system prompt…

  • 作者声明github.combcf9fa9bd547…

    把一个 profile 的依赖指向本包,并把 `dsh-runtime-log` 加入该 profile 的 `dsh.profile.bundles`,然后完整退出并重启 DSH。

页面基于项目公开文档、仓库元数据和 DSH Plugins 的结构化解析生成;最后核验于 2026-11-14。发现错误?提交更正。

🏆

最佳 DeepSeek Harness 插件

从全目录挑出的 12 个值得优先安装的插件,覆盖各个分类。

DSH Plugins 是独立的 DeepSeek Harness 插件目录,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。