The audit-driven production-hardening wave (#12–#21), in one release. Full narrative with every design decision: CHANGELOG 4.3.0.
Safety (the audit's HIGH/MED/LOW findings, all closed)
- SQL blast-radius classifier rewritten — burden of proof inverted, fails closed, checks at save time; CTE-led deletes,
WHERE 1=1, MERGE/ALTER/GRANT all caught - Duplicate-proof creates (ambiguous network failures verify-and-adopt, never blind-resend) and
expected_updated_atoptimistic concurrency on every update path html_filejail sealed (dotfiles + the credential file, symlinks included); credential file written 0600- Value-shape redaction (connection-string passwords, JWTs, PEM keys — in any value or name) applied to query/profile output; untrusted-content envelope on portal-authored data
- Binding re-verifies on a TTL + config reload; admin paths confirm-gated with self-lockout protection; rollback scope stated honestly
Token & performance defaults (each with an opt-out)
execute_query≤1,000 rows ·get_resource summary/fields(~2,750 → ~150 tok) · list byte-cap with auto-projection · compact JSON · 5s read cache (writes clear it) · server-side pagination on first pages (live-probed) · parallel snapshot fan-out
The autonomous-loop toolkit
cleanup_scratch+ theTMP ·naming scope ·score_portalwith a VC-committed regression baseline ·/portal-improve— snapshot → score → fix → adversary-verify → sweep → baseline only on proven non-regression
DX & docs
- ESLint in CI · generated tool reference (
npm run gen:docs, 40 tools, can't drift) · quickstart/concepts/FAQ tiers · broadened link checking ·server.tssplit begun (typed DI seam, behavior-frozen)
343 tests (was 276) · 40 tools · every PR CI-gated on Node 18/20/22.
🤖 Generated with Claude Code