Skip to content

Changelog

Version v0.3.0

Highlights

This release adds a web dashboard, client query API with pagination, distributed tracing across job chains, transaction hooks for safe side-effect buffering, and a major documentation site — alongside extensive API refinements and breaking changes.

Breaking Changes

  • Type exports cleaned up: Reference types renamed for consistency
  • Error classes redesigned: Improved error hierarchy and client API consistency
  • State adapter methods renamed: Clearer naming conventions across all adapters
  • waitForJobChainCompletion → awaitJobChain: Simplified chain awaiting API
  • Blockers extracted: Moved from Job base type to separate JobWithBlockers wrapper
  • Trace context split: Separated into distinct chain and job trace fields
  • CommitHooks → TransactionHooks: Renamed with added discard support
  • withNotify replaced: Explicit CommitHooks / TransactionHooks for side-effect buffering
  • chain_index added: Deterministic chain ordering and continuation deduplication
  • originId removed: Deduplication key used for continuations instead
  • rootChainId removed: Unified chain deletion model
  • startBlockers callback → blockers array: Simplified blocker declaration
  • State adapter retry wrapper removed: Retry logic no longer built into adapters
  • updatedAt removed: Dropped from StateJob and database schema
  • API naming simplified: Removed redundant Queuert prefix from exports
  • Worker config simplified: Reduced property verbosity
  • Deduplication API renamed: strategy → scope
  • Worker redesigned: Parallel slot-based execution model
  • createInProcessWorker accepts client: Takes client instance instead of individual adapters
  • OTEL metric prefix hardcoded: Removed messaging semantic convention attributes
  • deleteJobChains returns deleted chains
  • acquireJob returns hasMore

New Features

  • @queuert/dashboard: Embeddable SolidJS web dashboard for job queue observation
  • Client query methods: queryJobs and queryJobChains with pagination and type narrowing
  • Distributed tracing: Full trace context persistence across job chains with OTEL blocker spans
  • Transaction hooks: Buffer observability events via transaction lifecycle hooks
  • Cascade deletion: cascade option on deleteJobChains for transitive dependency removal
  • Table prefix (@queuert/postgres): Configurable table name prefix
  • State adapter conformance test suite (queuert/testing): Shared test harness for adapter implementations
  • Migration version tracking (@queuert/postgres, @queuert/sqlite): Track applied migration versions
  • Documentation site: Astro-based docs with TSDoc and explicit API types

Bug Fixes

  • Add NOT NULL constraint to chain_id column (postgres, sqlite)
  • Scope deduplication key by chain type name
  • Assign continuedJob in workerless continueWith path
  • Fix transaction handling rework
  • Remove notification listeners before releasing pool client (postgres)
  • Only subscribe to job notifications when worker has idle slots
  • Prevent workers from reaping their own in-progress jobs with concurrent slots

Packages

All packages released at 0.3.0: queuert, @queuert/dashboard, @queuert/postgres, @queuert/sqlite, @queuert/redis, @queuert/nats, @queuert/otel.