github unkn0wn-root/resterm v1.5.1

2 hours ago

v1.5.1

A follow-up to v1.5.0. This release fixes cases where failed SSE and WebSocket runs could lose the transcript collected before the failure or report the wrong failure type.

Fixed

Failed streams keep their transcript

When an SSE or WebSocket stream fails, Resterm now keeps the events and frames collected before the failure.

The partial transcript remains available in the Stream tab, history, RestermScript, and headless reports. SSE events also retain their original stream indexes when older events have been removed by retention limits.

Stream failures keep their original cause

Stream failures now preserve their underlying failure class instead of always becoming generic protocol errors.

For example:

  • A missing file used by @ws send-file reports a filesystem failure with detailed exit code 25, rather than protocol error 26.
  • A run whose caller deadline expires reports a timeout with detailed exit code 20.
  • Configured SSE duration or stream idle limit still ends the stream normally and does not fail the request.
  • Stream summaries expose the optional errorClass field.
  • Headless stream reports include the failure message in stream.error.

IPv6 redirects and limits

  • IPv6 origins are now formatted correctly, including scoped addresses with interface names.
  • For safer redirects, IPv6 interface names that differ only in capitalization are no longer treated as the same origin.
  • Extremely large response and stream size limits (rare) are now handled correctly without integer overflow.

Headless API note

headless.Stream gains the Error field, and JSON stream objects may now include error. Stream summaries may include errorClass.

Existing keyed struct literals continue to work. Code using unkeyed headless.Stream literals must add the new field or switch to keyed literals.

Don't miss a new resterm release

NewReleases is sending notifications on new releases.