DeepSeek Harness 插件

dsh-logger-panel

Runtime log panel for DeepSeek Harness: live SSE log view in Settings plus bounded date/size rotating JSONL files.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
LingLambda/dsh-logger-panel
最近更新
2026年8月14日
分类
插件开发工具
GitHub stars
2
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/LingLambda/dsh-logger-panel
插件名:dsh-logger-panel
作者:LingLambda

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-logger-panel

English | 中文

适用于 DeepSeek Harnessdsh)的运行日志面板。它捕获 Host 的 Cordis logger 输出,通过 SSE 实时流入 设置 > 日志 页面,并把同一批记录持久化到私有 $DSH_HOME/logs/dsh-logger-panel 目录下按日期与大小轮转的有界 JSONL 文件。

页面只按纯文本渲染记录。原始 logger 参数、Fiber 引用、ANSI 转义与可执行标记都不会跨过浏览器 wire。

Preview

<img width="2540" height="1360" alt="图片" src="https://github.com/user-attachments/assets/9a450daa-d75e-4c27-b4ff-d80dbee3dad4" />

特性

  • 实时视图:快照 + 每 100 毫秒批量推送 SSE 增量。
  • 历史分页:点击「加载更早」从轮转 JSONL 文件中跨轮转、跨日期读回更早记录,让浏览器视图突破内存窗口。
  • 底部自动跟随;向上滚动后暂停,并提供「回到最新」按钮恢复。
  • 内存有界:Host 为每个新连接的浏览器保留最近 2,000 条记录。
  • JSONL 持久化:Host 激活、日期变化或达到 5 MiB 上限时打开新的 YYYY-MM-DD-N.jsonl;超过 30 天的匹配文件会被删除。目录以 0700 创建,文件以 0600 创建。
  • 磁盘队列有界(1,000 条)。持久化失败时面板会报告故障并继续实时流;被省略的记录会计数。

要求

  • 带 Web profile 的 DeepSeek Harness(设置外壳来自 dsh-client-ui-settings、client 模块系统与 dsh-host-webserver),版本 0.1.0-rc.6 或更新。
  • Node ^22.19 || >=24

安装

该包是一个 dsh 组合包package.jsondsh.bundle 指向 cordis.patch.yml 以激活 Host 插件,并声明 dsh.client 让 Web profile 自动发现浏览器 bundle。

从 npm:

dsh plugin --profile demo add dsh-logger-panel
dsh --profile demo

从 git(prepare 脚本会在安装时构建 lib/;请先在 profile 的 pnpm-workspace.yaml 中授权构建):

dsh plugin --profile demo add github:LingLambda/dsh-logger-panel#<sha>

针对 Harness checkout 做本地开发时,用 overlay 装载 Host 源码:

pnpm dsh web --patch ./cordis.patch.yml --patch /absolute/path/to/dsh-logger-panel/overlay.yml
- insert:
    - id: logger-panel
      name: /absolute/path/to/dsh-logger-panel/src/index.ts

配置

插件行以 logger-panel 插入。在你的 profile patch 中覆盖其 config

- id: logger-panel
  name: dsh-logger-panel
  config:
    root: /var/log/dsh         # 默认:$DSH_HOME/logs/dsh-logger-panel
    maxRecords: 2000           # 为连接浏览器保留的记录数
    maxRecordChars: 20000      # 单条格式化消息保留的最大字符数
    batchMs: 100               # SSE 批量推送间隔
    maxFileBytes: 5242880      # 每个 JSONL 文件在轮转前的字节数
    maxAgeDays: 30             # 保留天数;0 表示不删除
    maxPendingRecords: 1000    # 领先于磁盘写入而接受的最大记录数
    historyPageSize: 500       # 单个历史页返回的记录数

工作原理

Host 注册一个 Cordis logger exporter。每条消息被格式化为有界纯文本并追加到内存历史,同一条记录同时排队进入 JSONL writer,因此所有捕获级别都会落盘,不做任何内容筛选。每个浏览器连接先收到快照,再收到批量增量;关闭时会排空已接受的文件写入。初次创建目录或打开文件失败会拒绝插件激活;运行期写入失败会停止持久化、在面板中报告,并让内存与 SSE 路径继续工作。

/dsh-logger-panel/logs/history 端点按倒序从 JSONL 文件分页读回更早记录。首次请求以浏览器最早一条实时记录为锚点,避免重复返回当前窗口;后续请求使用不透明游标继续。浏览器把已加载的历史与实时窗口分开维护:实时裁剪不会删除历史,重连快照会去重合并。

开发

corepack yarn install
corepack yarn typecheck
corepack yarn test
corepack yarn build

许可证

MIT