A bug-fix release. v0.1.0 shipped a broken agent UI — if you pulled it, this
is the one to use.
Fixed
-
The agent UI did not work at all. Two Server-Sent Event delimiters in the
page's<script>were written as literal newlines inside string literals
instead of\nescapes, so the whole script failed to parse. The page
rendered normally and asking a question did nothing. Every test passed,
because they only checked the served HTML for substrings — which a script
that never runs satisfies perfectly. -
Tool failures leaked internal detail to clients.
POST /toolhad been
hardened against returning raw adapter exception text, but the model-driven
path had not:ToolInvocation.resultcarried the exception, andsteps[]is
serialised into/askresponses and SSE frames, so a warehouse DSN or a
filesystem path still reached callers by another route.The split now follows the audience. The model keeps the full exception,
because it needs the detail to correct itself; callers get the exception
type only. The SQL guard's message is passed through verbatim, since it
describes the caller's own statement and is useful to them. -
The Airflow dag id was interpolated into a URL unescaped. It can come from
the model, and a value containing?,#or/rewrote the request path —
daily_revenue?limit=1became a different call. Now percent-encoded. -
make docker-runcould not work. Its recipe contained the two characters
backslash-n where line continuations belonged, so docker received them as
arguments.
Added
-
Tests for the assets the Python suite never touched. The UI's script is handed
tonode --check, and every self-documented Makefile target is expanded with
make -n.Two of the four bugs above came from the same mistake — writing escape
sequences through a shell heredoc, which converts them silently. That is
invisible to review and to a Python test suite, and trivial for a parser to
catch.
Unchanged
Everything else from v0.1.0,
including its known limitations: the Notion, Slack and Google Docs connectors
have still not been run against their live APIs, the example Airflow DAG has
still not been parsed by a real scheduler, and the default hashing embedder
still scores 0.889 hit rate / 0.653 MRR on the bundled eval set.
Full detail in CHANGELOG.md.