v1.5.0
What's Changed
Features
- Process-wide global event emitter — adds a lock-free, cross-env listener registry for emitting native-side events to JS. By @cb1kenobi in #621
- Transaction-log torn-tail recovery — detects and truncates partially-written transaction-log frames on open instead of erroring, so a crash mid-write no longer wedges the log. By @kriszyp in #614
Bug fixes
- Fix use-after-free in
getUserSharedBuffer()when the DB closes with retainedArrayBuffers— retaining the buffer after close no longer crashes the process. By @cb1kenobi in #629 - Stop the transaction-log read path from truncating the append-owned file size (#1148) — concurrent point reads no longer race with the writer's append cursor. By @kriszyp in #637
- Lock-free listener-count gate on the EventEmitter — avoids contention on the hot emit path when no listeners are registered. By @kriszyp in #639
- Mutate the iovec array in place in
writeBatchToFile— removes a per-batch allocation in the transaction-log writev path. By @kriszyp in #615
Build
- Fix Node 26 Windows native build broken by leaked Clang LTO flags. By @kriszyp in #617
- fix(build): link zlib so the macOS linker can resolve RocksDB's compressor. By @kriszyp in #619
Tests / CI
- Fix flaky Deno unit tests in Vitest fork and worker teardown. By @cb1kenobi in #633
Tooling
- Set Dependabot cool-down to 24 hours to match pnpm policy. By @cb1kenobi in #616
Full Changelog: v1.4.2...v1.5.0