ethos-parser 0.56.0
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 --versionNeither 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:
-
groundkeeps insideethos.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
groundtool in both SDKs returnsethos-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-fw9said 763 where the engine omitted 127. -
MCP refuses a path that is not a regular file.
/dev/stdinor a FIFO used to hang the server. The 2 GiB source ceiling now also bounds pipes and devices forextract,markdown,html,groundandgrounding-check.
Faster:
- SHA-256 runs on the CPU's SHA-2 instructions on Apple silicon:
extract,ground,markdownand MCPnode_getare 9–13% faster. - MCP remembers which exact bytes already verified, so repeat
node_getcalls on one representation are 62–66% faster and repeatgroundcalls 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.
classifyandoverlaystill read their input throughDocument::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-pagesbounds pages, not bytes.