Introduction

DeepSeek Harness (DSH) adopts the “everything is a plugin” philosophy and mounts specific capabilities as modules into the inference pipeline. In Unreal Engine (UE) development, log files under the Saved/Logs directory are often large and contain massive amounts of redundant information. ue-log-reader is a DSH plugin maintained by Reseezhang and belongs to the model inference category. It enables the model to call the uelog tool to scan log files, perform streaming parsing and aggregated deduplication, render quick-read cards, and provide one-click copying of defect ticket summaries, addressing the cumbersome nature of log analysis.

Core Features

The plugin provides the following capabilities:

  1. Streaming parsing and deduplication: Supports line-by-line streaming log parsing (can process hundreds of MB of files) and parses only the trailing 200 MB by default to control resource consumption. Aggregates and deduplicates by “category + normalized message,” merging repeatedly emitted errors into a single record.
  2. Crash extraction: Automatically extracts the crash reason, the stack trace of the first 10 frames, and the engine version.
  3. Quick-read card rendering: Renders quick-read cards in the DSH UI, including file header information (name, size, time span), statistical color blocks (Fatal/Error/Ensure/Warn, with click-to-filter), a Top issues list (hover to show the original text), and collapsible crash details.
  4. Defect ticket generation: Provides a “Copy Defect Summary” button to generate a plain-text defect ticket with one click (including version, time, crash reason, stack, and frequent issues).
  5. Format compatibility: Supports the standard UE log format and the Android adb logcat format.
  6. Security validation: Explicit paths must fall within projectRoot/logRoots (including validation for URL-encoded variants); all operations are read-only to ensure the log directory is not modified.

Installation and Enablement

The plugin depends on DeepSeek Harness desktop 2.x (Web profile also supported). Installation methods are as follows:

Run in the repository root:

powershell -ExecutionPolicy Bypass -File install-uelog.ps1

Method B: Manual copy

  1. Copy the ue-log-reader directory into the target profile’s node_modules/.
  2. Append "ue-log-reader" to dsh.profile.bundles in the profile’s package.json.
  3. Restart DeepSeek Harness.

Method C: Install as a dependency

Configure the dependency in package.json and register the bundle:

{
  "dependencies": {
    "ue-log-reader": "github:Reseezhang/ue-log-reader"
  },
  "dsh": {
    "profile": {
      "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "ue-log-reader"]
    }
  }
}

Configuration

Default configuration is in DEFAULTS in lib/index.js. It can be overridden in profile-level cordis.patch.yml:

- id: ue-log-reader
  config:
    projectRoot: "D:/Projects/MyGame"   # UE 项目根目录(必配;缺省退回工作区根)
    logRoots: []                        # 额外允许的日志根目录(如 adb 拉取的真机日志目录)
    maxBytes: 209715200                 # 单文件扫描上限(默认 200MB,超过只解析尾部)
    maxTopIssues: 15                    # Top 问题列表上限
    scanRateMax: 6                      # 扫描全局限流(10s 窗口内最大次数)

Usage

  1. Restart DeepSeek Harness.
  2. Enter an instruction in the conversation, for example, “Analyze the logs” or “It just crashed, check the logs.”
  3. The model automatically calls the uelog tool to scan the latest log under Saved/Logs/ (or a specified explicit path).
  4. The quick-read card appears on the uelog tool call node, displaying statistics and crash details.
  5. Click “Copy Defect Summary” on the card to generate defect ticket text, or click “Open Log Directory” to locate the file.

On-device Log Support

The plugin supports parsing adb logcat output. For on-device logs:
1. Export the log to a file using adb logcat -d > device.log.
2. Place the file in Saved/Logs/ or in the directory pointed to by the configured logRoots.
3. Request analysis in the conversation; the card header will show a logcat badge.

The plugin automatically identifies Fatal signal crash blocks and extracts the stack. For memory address stacks in release builds on physical devices, symbolization (conversion to function names) requires matching the build’s symbol table; the current version only displays address frames.

Notes

  • Prerequisite version: Requires DeepSeek Harness desktop 2.x.
  • Zero dependencies: The parsing logic uses built-in Node.js modules; no additional dependencies need to be installed.
  • Security and permissions: The plugin runs with the current DSH process permissions; the source code should be reviewed before installation. Operations are read-only by default, and paths must be controlled.
  • License: MIT license.

Short Closing

ue-log-reader encapsulates the complex parsing process of UE logs into model tool calls and reduces developers’ debugging cost through visual quick-read cards. It is suitable for developers who need to quickly locate UE crashes or performance issues within the DSH workflow. See the project on GitHub.