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
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
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)