0.8.92
Added
- Added an
eval-suite-regression-notifiertrigger example that runs a scheduled
eval pack, gates it withstd/eval/stats::regression_gate, and posts Slack
verdicts only on regression or improvement flips.
Fixed
- Fixed nil-bearing Postgres queries whose params Postgres cannot infer
failing on the new describe-then-bind path. The describe-then-bind fix learns
per-slot OIDs viaprepare_with(sql, &[]), which forces Postgres to infer
every$nfrom query structure alone. For a query with a genuinely
ambiguous slot (e.g.SELECT $1 IS NULL, real failure
could not determine data type of parameter $3), the describe probe itself
errored and the whole query failed — even though the pre-describe-then-bind
behavior (bind thenilas atextNULL) worked. Inside apg_transaction
the failed probe also aborted the transaction (current transaction is aborted), so even a same-connection fallback could not recover. The describe
probe is now best-effort: whenprepare_withfails, Harn no longer
propagates the error — it returns no per-slot OIDs (cached, since the failure
is deterministic per SQL structure) and the bind path falls back to the legacy
textNULL, which is strictly ≥ the old behavior. When the probe runs inside a
caller transaction it is wrapped in aSAVEPOINT _harn_describe_probe
(released on success, rolled back on failure) so a failed probe never taints
the caller's transaction — the ambiguous query succeeds via the fallback and
the transaction stays usable for subsequent statements and commit. The
all-non-null fast path and the successful-describe path are unchanged (no extra
round-trips when describe succeeds; the savepoint is added only around the
in-transaction probe).
Install / Upgrade
cargo install harn-cliFull Changelog: v0.8.91...v0.8.92