Skip to content

v2.14.1

Choose a tag to compare

@github-actions github-actions released this 16 Sep 16:58
· 35 commits to main since this release
1776365

Fixed: MCP tool calls no longer hang on large logs

If you drive UltraLog from Claude Desktop, evaluate_formula and get_channel_data would hang
forever on any log over roughly 22,000 rows — no result and no error, just silence until you gave
up. Smaller logs worked fine, which made it look like a slowdown rather than a hard failure.

The cause was response size. Both tools returned one entry per log record, and MCP clients discard
any single response over 1 MiB inside their decoder without reporting anything. A 178,000-row
session produced several megabytes, so the reply was dropped in transit and nothing ever came back.

Responses are now bounded. A 500,000-row log returns in well under a second.

What changed

  • Series are downsampled for transport. evaluate_formula and get_channel_data return 2,000
    samples by default and take a new max_points argument for up to 10,000. Downsampling uses the
    same LTTB algorithm as the chart, so peaks and dropouts survive rather than being skipped past.
    For full resolution, narrow the window with start_time/end_time.
  • Responses say what you got. Every reply now carries total_samples and downsampled, so a
    reduced series is never mistaken for a complete one.
  • Statistics are still exact. Min, max, mean, median and standard deviation are computed over
    every record in range — not over the samples that came back.
  • find_peaks reports its cap. It returns at most 500 peaks, selected by prominence and listed
    chronologically, and now includes total_peaks and truncated. Previously a capped list was
    indistinguishable from a complete one, so counting events off it gave exactly 500 every time.
  • Oversized replies error instead of hanging. Anything still too large to deliver comes back as
    a clear message naming max_points and the time range.

Also fixed

  • A log with ragged rows — where some rows are missing a column — could crash UltraLog when that
    channel was requested over MCP. It's now reported as an error instead.

Parsing, the GUI and ECU format support are unchanged. If you don't use the Claude Desktop
integration, the ragged-log crash fix is the only thing here that affects you.

Installation

macOS

  1. Download the appropriate .dmg file for your Mac:
    • Intel Mac: ultralog-macos-intel.dmg
    • Apple Silicon (M1/M2/M3/M4): ultralog-macos-arm64.dmg
  2. Open the DMG and drag UltraLog to your Applications folder
  3. Launch UltraLog from Applications. The app is signed and notarized by Apple, so it opens without a Gatekeeper warning.

Windows

  1. Download ultralog-windows.zip
  2. Extract the zip file
  3. Run ultralog-windows.exe

Linux

  1. Download ultralog-linux.tar.gz
  2. Extract: tar -xzf ultralog-linux.tar.gz
  3. Run: ./ultralog-linux

What's Changed

🔄 Other Changes

  • fix(mcp): bound tool response size so large logs return instead of hanging by @SomethingNew71 in #89

Full Changelog: v2.14.0...v2.14.1