Skip to content

v2.7.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 18:08
· 20 commits to main since this release
v2.7.0

Upgrade notes

  • Restart every running server after upgrading. The new put tool shares the exchange directory with download and say files=, and older binaries don't know its staging folder.
  • One new tool, put. Deny it in your MCP client if you don't want an agent able to write files into the exchange directory.

New

  • put writes a new file into the exchange directory, so clients whose file tools can't reach the server's filesystem (Claude Desktop and claude.ai, whose code sandbox is another machine) can attach generated files with say files=. Call it as put name='chart.png' base64='…' or put name='notes.md' content='…'.
    • At most 5 MiB per file.
    • Never overwrites: a taken name is saved as name (n).ext and the result says so.
    • It never reads, lists, or deletes files, and takes a bare name, never a path.
    • The file is written in full before it takes its name, so a say at the same moment never attaches a partial file.
    • Sending still goes through say, with every outbound check: the secret scanner reads the file's bytes.
  • ADR-012 records why inline file content on say and fetching from a URL stay rejected, and the risks put accepts.

Fixed

  • Messages posted by say read back as one line. Slack rewrites a rich-text message's text field with its newlines flattened, so the reader now renders from the message's blocks: lines, lists, quotes, code blocks, and inline styles survive. >, <, and & are decoded, and dates and group mentions in rich text render.
  • messages target='C…' with a bare channel ID works in every mode, not only with since=.
  • Unread DM counts come from Slack's read position instead of a guess. Unread lines are marked ●, every unread up to ten is shown, and a window that is all unread shows N+.
  • Mentions: inbox view='unreads' and view='mentions' agree, and your own "has joined the channel" events are no longer counted as mentions.
  • Blank previews: a file-only post renders as [file: name.png], and app messages show their content instead of [no preview available].
  • messages target=… since= names the conversation, shows readable times, and gives each message a handle to read it in full.
  • auth hints a choice as action="select" value="chrome", the form the tool takes.

What's Changed

  • fix: Claude Desktop smoke-test findings (reader, inbox, auth) by @aaronsb in #137
  • feat(put): write a file into the exchange directory for sandboxed clients by @aaronsb in #138

Full Changelog: v2.6.0...v2.7.0