Skip to content

v0.12.0

Choose a tag to compare

@justapithecus justapithecus released this 24 Feb 23:57
· 55 commits to main since this release
25396d6

Storage batching, memory pressure awareness, and end-to-end storage error propagation

Summary

v0.12.0 closes all remaining items from the v1.0 readiness assessment. Storage writes can now be pipelined with bounded concurrency, scripts can query memory usage across Node, browser, and cgroup sources, and storage backend failures propagate end-to-end through the first bidirectional IPC frame.

Highlights

  • Storage batching — createStorageBatcher(storage, { concurrency }) wraps ctx.storage.put() with bounded-concurrency pipelining (default 16), fail-fast semantics, and flush() drain (#196)
  • Memory pressure API — ctx.memory.snapshot() returns heap, browser, and cgroup usage with a composite pressure level; ctx.memory.isAbove(level) provides boolean threshold checks; cgroup v2/v1 auto-detection (#196)
  • End-to-end storage error propagation — file_write_ack is the first bidirectional IPC frame; backend write failures now reject the storage.put() promise as recoverable errors instead of being silently swallowed (#197)
  • Lode upgrade — Lode storage library upgraded from v0.7.3 to v0.8.0

Known Limitations

  • file_write_ack requires runtime ≥ 0.12.0 — older runtimes trigger a fire-and-forget fallback where storage.put() resolves without confirmation
  • Cgroup v1 environments reporting memory limit ≥ 2^62 are treated as unlimited (cgroup: null)
  • ctx.memory.snapshot({ browser: true }) returns browser: null when no Puppeteer page is available

Full Changelog: v0.11.0...v0.12.0