This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+4 more
Affected surfaces
ReleasePort's take
Moderate signalThe `createStyleDirtier` callback no longer throws on nodes with all style inputs folded out; it now performs a silent no‑op. Pilates library version 2.0.0 is deprecated and must be upgraded directly to 2.0.1.
Why it matters: Pilates 2.0.0 deprecation requires immediate upgrade to 2.0.1; the `createStyleDirtier` bugfix prevents unexpected exceptions, improving stability for developers and SREs managing Pilates‑based layouts.
Summary
AI summaryFixed over‑strict createStyleDirtier assertion that threw on nodes with only folded style inputs.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Performance | Medium |
Pure‑TypeScript Pilates now beats WASM Yoga on all benchmark scenarios, including the structural‑mutation workload (1.7× faster). Pure‑TypeScript Pilates now beats WASM Yoga on all benchmark scenarios, including the structural‑mutation workload (1.7× faster). Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Deprecation | High |
Version 2.0.0 is deprecated; users must upgrade directly to 2.0.1. Version 2.0.0 is deprecated; users must upgrade directly to 2.0.1. Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Bugfix | Medium |
`createStyleDirtier` no longer throws on nodes with all style inputs folded out; now silent no-op. `createStyleDirtier` no longer throws on nodes with all style inputs folded out; now silent no-op. Source: llm_adapter@2026-05-30 Confidence: high |
— |
Full changelog
Patch over 2.0.0: fixes an over-strict
markStyleDirtyassertion exposed by phase 17's input fold; see 2.0.1 entry. 2.0.0 is deprecated; upgrade directly to 2.0.1.
2.0.1 — 2026-05-23
Fixed
createStyleDirtier's callback threw"node has no style inputs in this grammar"when called on a node whose every style input was folded out of the grammar as a default-valued constant (phase 17). The throw was over-strict — for such nodes, there is genuinely nothing to mark dirty, and the dirtier now treats missing entries the same as missing fields within an entry (silent no-op). Caught by the runtime-incremental fuzzer (seed1005304606) post-publish of 2.0.0. Pinned as a regression test instyle-dirty.test.ts.
2.0.0 — 2026-05-23
Pure-TypeScript Pilates now beats WASM Yoga on every bench scenario. The structural-mutation workload (append + remove a row per frame), the last benchmark Yoga held the lead on, flipped from a ~5× Pilates loss (~451µs) to a 1.7× Pilates win (~71µs) — entirely through algorithmic and data-structure changes in TypeScript. No native code, no WASM port.
Public calculateLayout API is byte-unchanged; this release is SemVer-major only because of the internal-API and memory-characteristic shifts (typed-array runtime, unbounded LayoutPool growth, per-property dirty bitmask, linear-recurrence main-axis positions, fold default-valued style inputs). Consumers using only the documented public API should upgrade with no code changes.
See CHANGELOG.md for full details and the per-scenario speedup tables.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Pilates
All releases →Related context
Beta — feedback welcome: [email protected]