Skip to content

v1.2.0

Choose a tag to compare

@yib7 yib7 released this 07 Jul 23:30

Follow-up correctness and hardening cycle. Closes a second audit pass with one P0 sandbox-safety fix and a set of P1/P2 fixes across the wrangle, billing, config, auth, and chat layers. No breaking changes for end users. The test suite grew from 216 to 229.

Security

  • The conversational data-wrangling path now run-guards the LLM-generated transform code through the moderation gate before it executes, closing a gap where wrangle transforms bypassed the check that analysis runs already had.

Fixed

  • /chat refunds the debited credit when a code-generation stream fails, so a failed request no longer charges the account (applies when billing is enabled).
  • /verify_email is now rate-limited, matching the other token-consuming auth endpoints.
  • Config emits a startup warning when TRUST_PROXY_HOPS=0 in production, where the app is typically fronted by a proxy and rate limiting would otherwise key on the proxy IP.
  • The chat pipeline surfaces the feature-selection fallback as an explicit SSE phase event instead of failing silently on wide datasets.

Changed

  • Gemini stream usage extraction is now explicit rather than relying on implicit attribute access, and the case-insensitive moderation-verdict parsing is documented as intentional.

Tests

  • Added skip-marked real-Docker sandbox integration tests (run when a Docker daemon and the statlee-runner image are available). Suite: 229 passing, 2 skipped without Docker.