Skip to content

v0.2.0a19

Pre-release
Pre-release

Choose a tag to compare

@yfxiao16 yfxiao16 released this 14 Oct 11:50
91264e0

Follow-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@alpha

A 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 install names its own binary. A relative invocation (./venv/bin/sponsio host install) wrote whatever sponsio was first on PATH into 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, or python -m sponsio.cli for a module invocation.
  • --mode does what it says. It wrote defaults.mode into the host library, which the hook never read, so a default install printed observe and blocked anyway. The hook now defaults to enforce openly, and --mode observe rides on the hook command (env SPONSIO_GUARD_MODE=observe ...), where the agent under guard cannot change it. Re-run host install to switch. A mode: line already in a host library is left alone and ignored, as it always was.

Full list in CHANGELOG.md.