Skip to content

v0.4.0 — post only the agent's final reply by default

Choose a tag to compare

@0xCVH 0xCVH released this 01 Aug 19:05

Fixes a content leak. The plugin streamed every raw stdout chunk from the agent adapter into the Slack thread as it arrived. The SDK guarantees only that the done event carries "the canonical final user-facing assistant reply" — chunks are raw adapter output. With the claude_local adapter that meant two things were posted into Slack before being replaced by the real answer:

  • agent-runtime housekeeping ([paperclip] ACPX session "acpx:v2:…" does not match the current agent/cwd/mode/runtime identity…), and
  • the model's internal reasoning — chain-of-thought visible to everyone in the channel.

Now: only the agent's final reply is posted. The _Thinking…_ placeholder stays until the reply is ready, then is replaced (still with Markdown→mrkdwn conversion and long-message splitting).

Live streaming is available as an explicit opt-in via the new streamPartialReplies setting, whose description states the caveat. With it on, lines matching [paperclip] … are filtered out; internal reasoning is not filtered, which is precisely why the default is off.

148 tests.

🤖 Generated with Claude Code