Logdigest

io.github.CloudCorpRecords由 GitHub 账号 CloudCorpRecords 发布v0.1.0更新于 Oct 27, 2026

Condense a CI log to its failure sections and root-cause lines, with original line anchors.

已验证STDIO仅桌面开发者工具安全与监控

概览

AI 生成的概览

把 CI 或测试日志压缩成失败片段与根因行,保留原始行号,并给出 FAILURES-FOUND 或 NO-FAILURES 结论。

可以做什么
  • 摘要日志文件:找出错误行、测试失败行和非零退出码行,按原始行号分组成片段,并返回结论以及总行数与保留行数的统计。
  • 读取与命令行 --json 输出相同的报告,包含各规则计数、严重程度和捕获的堆栈上下文。
适用场景
适合需要在本机快速排查冗长的 CI 或测试日志、想直接看到失败用例、错误行和堆栈头而不必通读上千行的场景。它只是阅读辅助,不做根因诊断。
运行要求
以本地 stdio 进程运行,可通过 npx 使用 npm 包,或使用 Docker 镜像。npm 方式需要 Node 20 或更高版本。未声明账号、API 密钥或环境变量。工具按路径读取用户机器上的日志文件。
安装前请注意
助手可以读取被指定的任意日志文件路径,日志中可能含密钥或个人数据并进入对话。检测基于模式匹配,NO-FAILURES 只表示未发现已知失败形态。最多输出前 200 个片段,每行截断到 200 字符,因此摘要并非日志全文。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Logdigest,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

logdigest

Condense a log file to its failure evidence.

A CI or test log can run to ten thousand lines, but the part anyone reads is the handful of failure sections: the failing test, the error line, the stack, the nonzero exit. logdigest reads a log file, finds those lines, groups them into sections with their original line numbers, and prints a digest you can read in one screen. It reports a verdict of FAILURES-FOUND when it finds any failure section and NO-FAILURES when it finds none.

Install

sh
npx @reneturcios/logdigest digest build.log

Or install it globally:

sh
npm install -g @reneturcios/logdigest

Requires Node 20 or newer.

CLI

sh
logdigest digest [file] [--json]logdigest mcplogdigest --version
  • logdigest digest <file> prints the human readable digest.
  • logdigest digest <file> --json prints the full report as JSON.
  • logdigest mcp runs the MCP server over stdio (see below).
  • logdigest --version prints the version.

Exit codes: 0 when the verdict is NO-FAILURES, 1 when the verdict is FAILURES-FOUND, 2 for a usage or read error (for example, the target is a directory or cannot be read), and 141 when the reader closed the output pipe early.

Example digest:

text
logdigest digest test.log: FAILURES-FOUND  2 failure section(s) found in 28 line(s): 9 matched line(s).  [HIGH] TEST-FAIL lines 5-16FAIL src/math.test.ts    AssertionError: expected 3 to be 4        at Object.<anonymous> (src/math.test.ts:10:11)  totals: total lines 28, matched lines 9, sections 2, overflow sections 0  by rule: TEST-FAIL 8, ERROR-LINE 1, EXIT-NONZERO 0

(The example above is shortened; the real digest prints every captured line of every section.)

MCP

The same binary is an MCP server:

sh
npx @reneturcios/logdigest mcp

It exposes one tool:

  • digest_log with a path argument (the log file to check). It returns the same report as the CLI --json output.

What it detects

Detection is pattern based. Every matched line is assigned to exactly one rule; when a line matches several patterns, the most specific rule wins (TEST-FAIL over EXIT-NONZERO over ERROR-LINE).

RulePatternsNotes
TEST-FAILFAIL , the word failing (for example 2 failing in a runner summary), ✕, × , not ok (TAP), AssertionError, and the shape expected ... to ...Test runner failures and assertion failures
ERROR-LINEthe word error (any case), Error:, ERR!, fatal:, panic, Traceback, ExceptionGeneric error evidence, including Python tracebacks and npm ERR! lines
EXIT-NONZEROexit code or exited with code followed by a nonzero number, and the phrase command failedAn exit code of 0 is not a match

How sections and verdicts work

  • Matched lines that are within 3 lines of each other form one section. A wider gap starts a new section.
  • After a stack head (a Traceback line, the first at stack line of a run, or a matched line directly followed by a stack line), up to 5 further lines are captured as context, so the top of a stack survives the digest. The capture never crosses into the next section.
  • Each section becomes one finding. Its line is the section's first line number, its evidence is the first matched line, and findings also carry endLine and the captured sectionLines.
  • Severity is high for a TEST-FAIL or ERROR-LINE section that contains a stack head or an assertion, and medium otherwise. An empty log produces one info finding with rule EMPTY-LOG.
  • The report counts totalLines, matchedLines, sections (sections actually emitted), sectionsTotal, overflowSections, and one count per rule.
  • Verdict: FAILURES-FOUND if there is at least one section, otherwise NO-FAILURES. An empty log is NO-FAILURES with the EMPTY-LOG finding above.
  • Findings are capped at 200 sections. Sections past the cap are not emitted, but they are counted in overflowSections so the report never silently truncates.
  • In the human readable digest, each section prints its line range followed by its captured lines verbatim, trimmed to 200 characters per line, then the totals. Output is deterministic: it is a pure function of the file contents, with no timestamps.

Limits

  • Detection is pattern based, so a log that phrases a failure in a novel way, with none of the shapes in the table above, can be missed. A NO-FAILURES verdict means "no known failure shape was found", not a proof that the run succeeded.
  • logdigest condenses; it does not diagnose. It surfaces the failure lines and their immediate context, but root cause analysis beyond the lines it surfaces is up to the reader.
  • Only the first 200 sections are emitted (the rest are counted), and rendered lines are trimmed to 200 characters, so a digest is a starting point for reading the original log, not a copy of it. The original line numbers are always preserved so any section can be found in the source log.

Development

sh
npm installnpm run buildnpm test

The core is in src/core.ts and uses only the Node standard library.

来源:README.md,提交 a673376

工具

1

digest_log

Digest a log file: finds error and failure lines (test failures, stack heads, nonzero exits, error keywords), groups them into sections with original line numbers, counts total lines versus kept lines, and returns a verdict of FAILURES-FOUND or NO-FAILURES plus the condensed digest.

输入参数path必填

版本历史

1
  1. v0.1.0最新Oct 25, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分