bunqueue v2.8.39
blog · release
bunqueue v2.8.39
Fixes 4 bugs and ships 2 additions. TCP rate limiting now charges each complete MessagePack frame instead of each socket data event.
To install bunqueue v2.8.39
Section titled “To install bunqueue v2.8.39”bun add bunqueue@2.8.39npm install bunqueue@2.8.39To upgrade bunqueue
Section titled “To upgrade bunqueue”bun add bunqueue@latestWhat’s new
Section titled “What’s new”- Real public-TCP production tests now exercise durable enqueueing, worker concurrency, retries, delayed jobs, priorities, flow dependencies, restart recovery, backpressure, health responsiveness, duplicate-effect detection, and complete drain under a large backlog.
- The generated model now covers multi-queue shard isolation and global conservation. Retention-boundary, protocol-correlation, stale-dependency, and dependency-result regressions bring the executable production register to 56 invariants, with the remaining contract-dependent candidates recorded explicitly in the internal testing reference.
Bugfixes
Section titled “Bugfixes”- TCP rate limiting now charges each complete MessagePack frame instead of each
socket data event. Partial frames consume no quota, coalesced frames are
limited independently, and overload responses preserve the triggering
reqIdso multiplexed clients can settle the correct request. - Stale dependency cleanup now removes durable SQLite state, buffered writes, reverse dependency edges, queue ownership, custom and unique identifiers, the global job index, and in-memory waiting state as one revalidated transition. Expired dependency-gated jobs can no longer remain readable or retain identifiers after garbage collection.
Bugfixes
Section titled “Bugfixes”- A dependency-result tracker now retains a producer result while at least one
live consumer edge needs it. Fan-in, fan-out, single and batch ACK,
removeOnComplete, retries, terminal failures, cancellation, cleanup, recovery, drain, and obliteration all update the same edge lifecycle. - Dependency result lookup distinguishes a cached
nullresult from a cache miss and falls back to durable storage consistently. Normal result-cache pressure can no longer make a declared flow lose child results before its parent is released.
Thanks to 1 contributor!
Section titled “Thanks to 1 contributor!”← bunqueue v2.8.38 · Release on GitHub · Commits since v2.8.38 · Full changelog · All posts