Skip to content

v0.19.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 00:22
babbb8d

0.19.0 (2026-09-06)

⚠ BREAKING CHANGES

  • constraints: String.Min / Max count Unicode characters, not UTF-8 bytes. Use MinBytes / MaxBytes when you need a byte-size limit.
  • diagnostics: consumers of Diagnostic.Msg, diagnosticf, or legacy diag message formatters must use Report fields / FormatReport and pass spans at every user-facing emit site.
  • refinements: ensure … or Err(...) as the failure form is replaced by ensure … else Err(...). Migrate existing failure sites to else; reserve or for assertion alternatives such as A() or B().
  • Ensure failure blocks now require the else keyword. Bare failure blocks without else will produce a parse error.

Features

  • constraints: expand built-in string and number checks (#203) (0556c4d)
  • diagnostics: ship structured reports with real spans (#201) (8f51c42)
  • lsp: complete exported names after Go pkg. (c364b92)
  • refinements: ensure proofs that survive until mutation (#198) (a6aac0f)
  • testrunner: run native Go-only _test.go packages (c364b92)
  • typechecker: allow ensure against named constrained types (#204) (d84233f)

Bug Fixes

  • compiler: link sibling Go sources in forst run sandboxes (#199) (c364b92)
  • transformer: register bridge return types via RegisterTypeIfMissing (8bcafcb)
  • vscode: highlight ensure else ErrorName sites (a6aac0f)

Performance Improvements

  • hasher: cheap HashNode identity and little-endian writes (#202) (b671eb3)

Documentation

  • document implicit Error propagation for ensure !err (a6aac0f)