Repository navigation
v0.2.0a19
Pre-releaseFollow-ups to the kta1kri rounds (#180, #188, #196), found while re-verifying 0.2.0a18 through the real install path. TypeScript @sponsio/sdk@0.2.0-alpha.9 carries the same fixes.
pip install --pre -U sponsio
npm install @sponsio/sdk@alphaA rule written in YAML/LTL binds every spelling of its tool
a17 canonicalised the tool argument inside the pattern factories. A rule written as LTL in YAML did not go through a factory: called(Issue_Refund) and Var(count, Issue_Refund) keyed on that exact spelling and missed issue_refund, mcp__finance__issue_refund and finance__issue_refund. The ArgValue term read the exact tool name too, so a cap written as a Term let the MCP-prefixed call through with the value unread. The join now lives in the predicate key itself, on both runtimes. loop_detection follows a tool across an MCP prefix (search, then mcp__web__search, used to reset the run), and a counter is no longer overwritten by a stale spelling of the same tool.
Host hooks
sponsio host installnames its own binary. A relative invocation (./venv/bin/sponsio host install) wrote whateversponsiowas first onPATHinto the hook, which on a machine with a second install was a different, possibly broken, binary; Claude Code runs the tool when a hook exits non-zero. The command now carries the absolute path of the install that ran, orpython -m sponsio.clifor a module invocation.--modedoes what it says. It wrotedefaults.modeinto the host library, which the hook never read, so a default install printedobserveand blocked anyway. The hook now defaults toenforceopenly, and--mode observerides on the hook command (env SPONSIO_GUARD_MODE=observe ...), where the agent under guard cannot change it. Re-runhost installto switch. Amode:line already in a host library is left alone and ignored, as it always was.
Full list in CHANGELOG.md.