Skip to content

ethos-parser 0.56.0

Choose a tag to compare

@ethos-pramaan ethos-pramaan released this 14 Sep 09:51
· 270 commits to main since this release
Immutable release. Only release title and notes can be modified.

The second release of ethos-parser. ground now keeps inside every limit of the grounding schema instead of writing artifacts the verifier refuses, the SDKs' LangChain ground tool reports the engine's own omission count, and MCP is faster and safe to hand a path.

Platforms

Archive Target State
ethos-parser-0.56.0-aarch64-apple-darwin.tar.gz macOS, Apple silicon verified
ethos-parser-0.56.0-x86_64-apple-darwin.tar.gz macOS, Intel verified (executed under Rosetta 2)

verified means built with the pinned Rust 1.88.0, executed, and its output byte-identical to the native build's over the gate corpus. SHA256SUMS.txt records the state beside each digest. Linux and Windows are still not shipped: nothing available can execute them. Nothing is published to crates.io, npm or PyPI.

Install

gh release download v0.56.0 --repo docushell/ethos-parser
shasum -a 256 -c SHA256SUMS.txt --ignore-missing
tar -xzf ethos-parser-0.56.0-aarch64-apple-darwin.tar.gz
./ethos-parser-0.56.0-aarch64-apple-darwin/ethos-parser --version

Neither binary is notarized. A copy downloaded through a browser is quarantined; once the digest checks out, xattr -d com.apple.quarantine ethos-parser-0.56.0-*/ethos-parser clears it. gh release download does not set the attribute.

What changed

Why it is a MINOR — output changes for the same input:

  • ground keeps inside ethos.grounding.v1's limits. 0.55.0 enforced only the span cap, so a document past any other limit exited 0 with an artifact the verifier refused. Now:

    • an element whose text is over 16,384 bytes is omitted with its spans;
    • more than 100,000 tables, a cell over 16,384 bytes, or a grid of over a million cells withholds every table (capabilities.tables: false);
    • more than 5,000 pages, a million elements, or a 256 MiB artifact is refused with exit 2 and resource_limit.

    Each is declared on stderr and in MCP's summary. Nothing is truncated, and every artifact inside the limits is byte-identical to 0.55.0's at equal version.

  • The LangChain ground tool in both SDKs returns ethos-parser mcp's own summary. Since 0.49.0 it reported nodes minus elements as the omission, which is wrong on any document whose blocks merge runs: irs-fw9 said 763 where the engine omitted 127.

  • MCP refuses a path that is not a regular file. /dev/stdin or a FIFO used to hang the server. The 2 GiB source ceiling now also bounds pipes and devices for extract, markdown, html, ground and grounding-check.

Faster:

  • SHA-256 runs on the CPU's SHA-2 instructions on Apple silicon: extract, ground, markdown and MCP node_get are 9–13% faster.
  • MCP remembers which exact bytes already verified, so repeat node_get calls on one representation are 62–66% faster and repeat ground calls 52% faster, with identical replies. Back-to-back calls on a 950 MiB representation can peak up to ~650 MiB higher while macOS returns the previous call's memory.
  • An inline representation passed to MCP is no longer copied three times: 4,867 MiB down to 1,413 MiB peak on an 82 MiB representation.

Breaking for library callers: ethos_parser_grounding::Projection gains elements_omitted and tables_withheld and is not #[non_exhaustive], so a struct literal or an exhaustive pattern stops compiling.

profile_sha256: sha256:739980e9873dfc9f59463f2b619262ffc73e1a0d80276932e64d2c513926894e. The full entry, with every measurement, is in CHANGELOG.md.

Known limits

  • An element omitted for its length leaves no trace in the artifact or the representation; it is declared only on stderr, in MCP's summary, and to library callers.
  • classify and overlay still read their input through Document::open, which has no source ceiling.
  • The MCP path refusal is Unix-only in effect: Windows reports anything but a directory as a file.
  • A caller cannot set a hard memory ceiling; --max-pages bounds pages, not bytes.