0.2.0 (2026-09-26)

⚠ BREAKING CHANGES

  • tool content results carry kind :content instead of :resource.
  • Snodo.Result has no error field, and Result.error/2 no longer takes an :error option.

Features

  • add Result.content/2 and deprecate Result.resource/2 (closes #59) (#72) (68c9340)

Bug Fixes

  • accept a bare authorization module in Router.dispatch/5 (closes #56) (#65) (456c816)
  • build the compliance report from the retained conformance run (closes #62) (#73) (04e4685)
  • deprecate Cancellation.cancel/2, whose reason is discarded (closes #57) (#70) (3d9e1cd)
  • explain a disabled protocol in Snodo.Test.dispatch/2 (closes #60) (#66) (3361a3d)
  • validate the Snodo.Tool description at compile time (closes #61) (#67) (45b0531)

Code Refactoring

  • remove the unread error field from Snodo.Result (closes #58) (#71) (30aad07)

0.1.0 (2026-09-26)

⚠ BREAKING CHANGES

  • rename mcp_ex to snodo (#11)

Features

  • add application authorization across discovery and dispatch (#6) (6e35765)
  • add inline components and Simple resources and prompts (#10) (927d73d)
  • add MCP.Client for in-process dispatch (#8) (466fb8c)
  • add ordinary MRTR and elicitation workflows (4914e1b)
  • add stdio and HTTP transports to MCP.Client (#9) (8d1d81e)
  • application stack, progress notifications, and conformance regression gate (#1) (d3b3041)
  • close the four target-application findings (69f44a7)
  • mirror and validate Mcp-Param headers for x-mcp-header arguments (closes #25) (#40) (ffa35c3)
  • send clientInfo in request _meta from Snodo.Client (closes #37) (#47) (3afe710)
  • support initialize-era HTTP clients alongside 2026 (closes #3) (#4) (bb43399)

Bug Fixes

  • add Host validation and tighten Origin checks on HTTP transports (closes #23) (#33) (638c26e)
  • bound stdio frame size and strip a leading BOM (closes #21) (#32) (37ae8a5)
  • do not answer JSON-RPC responses or malformed notifications (closes #18) (#28) (3f92dd1)
  • harden URI template matching boundaries (8d802fa)
  • keep initialize-era tools/list available when a tool has a non-object schema (closes #24) (#39) (d093711)
  • keep non-ASCII text intact over stdio (#26) (6f46a63)
  • restore green CI on main (#7) (892788e)
  • restore the executor's :mcp_execution message tag (#31) (aa96bed)
  • return tool input validation failures as isError results (closes #13) (#30) (c48d6ea)
  • treat client disconnect as cancellation in the Plug adapter (closes #19) (#34) (740c1cb)
  • use HTTP 200 for JSON-RPC errors on initialize-era dialects (closes #14) (#29) (dbb3b5f)
  • widen the sibling packages' dependency requirements (#50) (0413261)

Code Refactoring