Skip to content

v0.91.0

Choose a tag to compare

@magifd2 magifd2 released this 05 Oct 07:14
· 10 commits to main since this release

Changed

  • A saved MCP result shows its tail as well as its head (ADR-0096 §1).
    A text block too large to hold inline is now previewed by its first 600
    and last 200 characters, and the notice names the byte spans shown and
    the route to the rest (read_file offset/length). Metadata a server
    appends — "truncated": true, a row total — arrives as the last bytes
    and was never visible before.
  • shell_exec keeps the tail of long output and saves all of it
    (ADR-0096 §3). Past 20,000 bytes the model sees the first 15,000 and the
    last 5,000 bytes — a script's totals come last and used to be lost — and
    the whole output is saved to the work directory (up to 32 MiB), named in
    the note. gem-agent writes the file, privately (0600), so no lane's
    reach changes. The operator lane is not saved, nor is any lane when the
    shell runs without the sandbox, and the note says so.
  • search_files counts every file it did not search (ADR-0096 §4).
    Files over 2 MB (named, up to five), binary files, images, unreadable
    files and directories that could not be listed are counted in a
    closing line; size and image skips were silent, so a "no matches" could
    hide a large log that was never read. Refusals past the five named are
    counted too.

Added

  • read_file reads by bytes (ADR-0096 §2). offset/length take a
    byte window — a negative offset counts from the end — so the tail of a
    long single-line file is reachable, which a line window never was: a
    tool result saved to the work directory past 200 KB could not be read
    to its end by the tool its notice named. The note names the bytes
    returned, moved to rune boundaries. A plain read cut at 200 KB now says
    where to read on.