The language now has a structured logging DSL with pluggable sinks, is None/is not None identity syntax, and collection pipelines. A new vary check command runs 10 diagnostic rules across 5 categories. Mutation testing has 10 new semantic operators, equivalent-mutant detection, module budgets, heatmaps, and an observability score. VAST ships its first three phases: differential testing (AST interpreter vs JVM bytecode), an IR interpreter with 3-path comparison, and a reducer with corpus replay. The website has dark mode, a sticky mega menu, an articles system, and better mobile layout. varyup install --archive supports local installs, and release pipelines run inline smoke tests.
| Change | Description |
|---|---|
| Windows SHA256 fix | Fixed Windows installer failing to verify SHA256 checksums. |
| RC pre-flight checks | Automated pre-flight validation before release candidates. |
| VAST Phase 3 | Reducer, corpus management, and replay infrastructure for test case minimization. |
| VAST Phase 2 | IR interpreter, 3-path comparison, and blame reports for divergence analysis. |
| VAST docs section | Five documentation pages, landing page, and nav integration for VAST. |
| VAST Phase 1 | Differential testing comparing AST interpreter output against JVM bytecode. |
| Collection pipelines | VEP-0042: collection pipelines, typed decode, regex callbacks, and ergonomics improvements. |
| Collection pipeline fixes | Fixed type inference edge cases in collection pipelines and typed decode. |
| Sticky nav and mega menu | Sticky navigation bar, mega menu with featured items, and labs section. |
| 10 semantic mutators | Type-aware semantic mutation operators with contract strength analysis. |
| Mutation heatmaps | Visual heatmaps showing mutation coverage density across modules. |
| Data-flow prioritization | Budget-aware mutant execution ordered by data-flow impact. |
| Equivalent-mutant detection | Suspicion heuristics with auto-quarantine for likely-equivalent mutants. |
| Lie-shape taxonomy | Unified survivor interpretation classifying mutation survivors by shape. |
| Timeout-aware reporting | Mutation snapshots and reporting that account for timed-out mutants. |
| Module budgets | First-match module budgets and operator catalog controls for scoped mutation runs. |
| Articles system | Blog articles with draft filtering, --private gating, and --skip support in wg. |
| Observability score | Three-metric mutation quality measurement for test suite strength. |
| Mutation progress bar | Pulsing spinner with current filename during mutation runs. |
| ENUM_REPLACE operator | Mutation operator that substitutes enum variants to test exhaustive matching. |
| Structured logging DSL | log/logger/context syntax with pluggable sinks for structured log output. |
| VSCode log DSL highlighting | Syntax highlighting for log DSL, triple-quoted strings, and new types in the VSCode extension. |
| Mobile layout improvements | Responsive tables, dark mode toggle, and hero terminal on mobile. |
| Dark mode | Full dark mode support across the website with themed 404 page. |
varyup install --archive | Install toolchain from a local archive file. |
| Inline release smoke tests | Smoke tests run inside the release pipeline instead of a separate gate. |
--java-path flag | Launcher flag for JRE provenance checks. |
| macOS ARM64 e2e | End-to-end test job for macOS ARM64 in the varyup workflow. |
| Interactive terminal demo | Embedded terminal demo on the introduction page. |
| List[Int] VerifyError fix | Fixed JVM VerifyError by unifying primitive list type descriptors. |
| Project policy gates | Enforce contracts and pure function annotations at the project level. |
vary check engine | Rule-based diagnostic engine with 10 check rules across 5 categories, starting with VCI001 none-comparison. |
is None / is not None | Identity comparison syntax for null checks, replacing == None and != None. |
| Type narrowing scope fix | Fixed narrowed types leaking between function scopes. |
| Test runner crash fix | Fixed test runner crashing on JVM VerifyError instead of reporting the error. |
List.contains(item) | New contains method on lists returning Bool. |
| Property access error | Clear error when accessing methods as properties on runtime classes. |
| Website page speed | Deferred pagefind loading and image dimension attributes. |
vary reinstall | Command to reinstall the current toolchain version. |
| JVM error diagnostics | Human-readable diagnostics for JVM runtime errors in vary run, test, and mutate. |
| Dependency closure packaging | Replaced heuristic JAR packaging with computed dependency closure. |
| Transitive import fix | Fixed test compiler transitive imports and project version lookup. |