v0.2.3
A patch release: a localStorage compatibility fix, two compat-floor runtime polyfill families, a prebuilt Nix flake, a startup-path speedup, and test/CI internals.
Runtime fixes
localStorage now matches vanilla Node on the 22.4–24 web-storage band. When web storage is unconfigured, nub previously left localStorage present-but-undefined; it is now absent, exactly as on plain Node. This fixes test setups (vitest + happy-dom) and isomorphic libraries that feature-detect via 'localStorage' in globalThis. sessionStorage is unaffected. (#170, closes #166)
Runtime polyfills
Two TC39 feature families are now polyfilled where the running Node lacks them natively, complementing nub's existing down-leveling. (#174)
| Feature | What changed | Availability |
|---|---|---|
Uint8Array base64/hex |
toBase64 / fromBase64 / toHex / fromHex / setFromBase64 / setFromHex polyfilled |
absent ≤24, native 25+ |
| Explicit Resource Management | DisposableStack, AsyncDisposableStack, SuppressedError polyfilled |
absent ≤23, native 24+ |
Distribution
Nix flake (prebuilt binary). Install via nix run github:nubjs/nub or nix profile install github:nubjs/nub. (#169, closes #167)
Performance
Redundant work removed from the startup path. (#160)
Testing & internals
- De-flaked the foreground-handoff exactly-once SIGINT test — a test-observation race in the PTY harness, fixed with a readiness handshake and a bounded deadline (the delivery itself was already exactly-once). (#178)
ci-watchgained a--chunkflag for sub-agent foreground CI watching. (#165)- The daily download-stats snapshot now publishes to a dedicated data branch instead of
main. (d6fa1cd1)
Commits in this release
- feat(ci-watch): add --chunk flag for sub-agent foreground CI watching (#165,
19ba0803) - perf: remove redundant work on the startup path (#160,
184056ce) - ci(download-stats): push daily snapshot to a data branch, not main (
d6fa1cd1) - feat(nix): add prebuilt-binary flake (nix run github:nubjs/nub) (#169,
98daa61a) - fix(runtime): neutralized localStorage is absent, not present-undefined (#170,
2af8c196) - feat(runtime): polyfill Uint8Array base64/hex + Explicit Resource Management on the compat floor (#174,
a44e3d97) - test(spawn): de-flake the foreground-handoff exactly-once SIGINT test (#178,
943155d4)
Full Changelog: v0.2.2...v0.2.3