LingLambda/dsh-logger-panel ↗★ 1
dsh-logger-panel
Runtime log panel for DeepSeek Harness: live SSE log view in Settings plus bounded date/size rotating JSONL files.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:LingLambda/dsh-logger-panel说明文档
阅读完整 README ↗dsh-logger-panel
English | 中文
适用于 DeepSeek Harness(dsh)的运行日志面板。它捕获 Host 的 Cordis logger 输出,通过 SSE 实时流入 设置 > 日志 页面,并把同一批记录持久化到私有 $DSH_HOME/logs/dsh-logger-panel 目录下按日期与大小轮转的有界 JSONL 文件。
页面只按纯文本渲染记录。原始 logger 参数、Fiber 引用、ANSI 转义与可执行标记都不会跨过浏览器 wire。
Preview
特性
- 实时视图:快照 + 每 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.json 的 dsh.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#
针对 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 # 单个历史页返回的记录数