Skip to content

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 11:55
· 56 commits to main since this release
2094faa

A patch release with no breaking changes: validate names the installed version and a command to check a newer one when a key is unknown, a model whose reply is only reasoning is asked again instead of leaving the caller in silence, a module agent's load error reads as two sentences, and the plugin checks a failed rule against its SOP quote before blaming the agent.

Added

  • sandtable validate, and every command that loads a domain: an unrecognized key is followed by a line naming the installed version, such as sandtable-ai 0.2.1 doesn't know this key: check its spelling, or whether a later release added it, so a key from a newer release than the one installed is easy to tell from a typo (#341).

Changed

  • Claude Code plugin: before blaming the agent for a failed invariant, running-and-reading-results and the failure-triager subagent read the rule's source.quote and check that the SOP requires what the rule checks: the same order of calls, bound and condition. A rule stricter than the SOP is attributed to the task spec, with the fix to relax it or make it soft: true and confirm with regrade, instead of the agent being blamed for following the SOP (#343).
  • Roadmap: ROADMAP.md and sandtable.dev/roadmap list what 0.2.0 shipped, instead of calling it unreleased, and show the path to 1.0: 0.3.0 as the last release that may change the contracts, what 1.0 promises to keep stable, and what comes after it (#347).

Fixed

  • run --agent <module>: when a JS or TS agent fails to load, sandtable's advice now starts a new sentence after Node's error, as in Unexpected token 'export'. Node read it as CommonJS, …, instead of running on from it (#345).
  • Agents and callers on other models: a reply that is nothing but reasoning, with no tool call, no longer reaches the other side as silence. The openai: adapter (agent and caller) and the Bedrock Converse agent (bedrock:<model-id>) removed the reasoning and sent an empty message, so the caller heard nothing, asked "Hello?" and the turn counted against max_turns; gpt-oss-120b through Bedrock's OpenAI-compatible endpoint did this in 4 of 56 agent turns. Both now ask for such a reply again, up to twice, as Converse already did for reasoning that never closes, and the discarded replies never enter the conversation. If the third reply is still empty, it is sent as before and counted in results.json's usage as emptyAfterStrip, next to reasoningStripped, so a run shows how often the other side heard silence; the terminal summary and the HTML report show the count when it isn't zero (#332).

What's Changed

Other changes

  • fix(cli): a module agent's load error starts sandtable's advice on a new sentence after node's message by @Uliseis in #354
  • fix(adapters): a reply that is only reasoning is asked for again instead of reaching the other side as silence by @Uliseis in #358
  • fix(plugin): attribution checks a failed invariant against its sop quote before blaming the agent by @Uliseis in #361
  • docs(docs): the roadmap lists what 0.2.0 shipped and the path to 1.0 by @Uliseis in #360
  • feat(cli): validate names the installed version after an unrecognized key by @Uliseis in #356
  • chore(release): v0.2.1 by @Uliseis in #379

Full Changelog: v0.2.0...v0.2.1