bunqueue v2.8.34
blog · release
bunqueue v2.8.34
Fixes 2 bugs and ships 4 additions. bun run test:sandbox builds the current worktree into one pinned Debian/Bun test image and runs the mandatory unit, TCP, and embedded suites concurrently in three disposable containers.
To install bunqueue v2.8.34
Section titled “To install bunqueue v2.8.34”bun add bunqueue@2.8.34npm install bunqueue@2.8.34To upgrade bunqueue
Section titled “To upgrade bunqueue”bun add bunqueue@latestWhat’s new
Section titled “What’s new”bun run test:sandboxbuilds the current worktree into one pinned Debian/Bun test image and runs the mandatory unit, TCP, and embedded suites concurrently in three disposable containers. Containers have no host mounts or external network, run non-root with capabilities dropped, and use independent filesystems, ports, processes, and SQLite databases.- Every run preserves complete suite logs, timestamped Docker resource samples in NDJSON, per-suite JSON, and an aggregate JSON/Markdown report. KPIs include duration and test/file counts, CPU average/p95/peak, memory start/p95/end/peak and slope, PID peak, block/network I/O, slow-test rankings, OOM detection, and baseline regression signals.
- TCP functional files now each start a fresh server with dynamic TCP/HTTP ports and a unique temporary SQLite database. This removes cross-file state and port coupling while keeping the exact public persistence path under test.
AGENTS.md,CLAUDE.md, CI, and the internal architecture/testing reference now define the same mandatory three-suite gate, containment limits, diagnostic fallback, telemetry review, and native-only benchmark policy.
Bugfixes
Section titled “Bugfixes”- Bulk promotion no longer queries the eventually consistent SQLite listing
before the write-behind buffer has flushed. Embedded and TCP modes now select
delayed jobs from the live shard in stable
(createdAt, id)order, apply an exact optional count, update heap/temporal tracking/counters under one shard lock, wake queue-local waiters once, and persist every promotedrun_atbefore resolving. - The single-job promotion path now maintains the same delayed tracking,
persistence, and waiter invariants. The regression keeps non-durable delayed
seeds specifically to cover the former write-buffer race and verifies
count: 0, live counts, and SQLite-backed listings.
Validation on Bun 1.3.14: 5,845 unit tests passed (3 explicitly skipped), 402 TCP assertions passed across 60 fresh-server files, and 273 embedded assertions passed across 36 files. The parallel gate completed in 15.15 minutes with no failures or OOM events; its full telemetry is retained as a local build artifact.