Skip to content

Changelog

Version v0.9.0

What’s Changed

Features

  • Richer error messages: Failed jobs now store the full stack trace and custom Error properties (e.g., code, statusCode) instead of just [object Object] or a bare message string. Long errors are truncated at 10,000 characters.
  • New observability events: jobChainDeleted and jobTriggered events are now emitted through logging, OpenTelemetry, and custom observability adapters.
  • Safer triggerJob: Now guards against non-pending jobs (AND status = 'pending') and uses row-level locking (FOR UPDATE) in Postgres to prevent race conditions.

Breaking Changes

  • Default Postgres schema changed: The Postgres adapter now defaults to schema: "public" with tablePrefix: "queuert_" (previously schema: "queuert" with no prefix). Pass { schema: "queuert", tablePrefix: "" } to createPgStateAdapter to preserve existing behavior.
  • Removed type exports: NavigationMap, BaseNavigationMap, BaseNavigationEntry, JobTypeRegistryNavigation, ChainJobTypeNames, ContinuationJobTypes, EntryJobTypeDefinitions, BlockedJobTypeNames, ChainTypesReaching, JobTypeProcessorRegistryNavigation, processorNavigationSymbol. Use JobTypeNames, JobTypeEntryNames, and JobTypeProperty as replacements.
  • Union-based merged registries: Merged registry definitions are now a union type instead of an intersection.

Packages

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