This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
Affected surfaces
Summary
AI summaryBroad release touches Internal, Highlights, style, and tracing.
Full changelog
Highlights
Context injection is auto-detected (#635)
Handlers that annotate a parameter as Context receive it automatically.
accepts_context=True is no longer needed:
@qm.entrypoint("fetch")
async def fetch(job: Job, ctx: Context) -> None: ...
Explicit accepts_context=True/False still works and overrides detection.
Existing code is unaffected.
Faster dequeue for multi-entrypoint workloads (#668)
The dequeue query now does a per-entrypoint LATERAL lookup using two new
partial indexes on (entrypoint, priority DESC, id) and
(entrypoint, execute_after). Global priority order across entrypoints is
unchanged, and EXPLAIN ANALYZE plan-regression tests guard against future
regressions (#669, #673).
Run pgq upgrade on existing installations to create the new indexes.
--heartbeat-timeout on pgq run (#675)
The heartbeat timeout is now configurable from the CLI.
Fixes
- schema: the upgrade migration uses the configured status enum type instead
of a hardcoded name - tracing:
SentryTracing.trace_processre-raises exceptions; header
generation yields one header per entrypoint when the SDK is absent - stale docstring and import-path corrections
Docs
- New page: deep dive on
FOR UPDATE SKIP LOCKEDdequeueing - Accuracy fixes in the reliability, retry, completion, performance,
deployment, and comparison pages - README restructured; rate-limiting guide renamed to concurrency-control
- Brand casing normalized to PgQueuer
Internal
from __future__ import annotationsin all modules; Sentry and Logfire
tracing adapters unified on aHAS_Xflag pattern; docstring and comment
cleanup- New tests: tracing adapters (#648), entrypoint registration validation (#638)
What's Changed
- feat(core): auto-detect context injection from handler signature by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/635
- chore: remove unused scripts and dedupe .gitignore by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/636
- test(tracing): cover sentry and logfire adapter behaviour by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/648
- test(qm): cover entrypoint registration input validation by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/638
- docs: rename rate-limiting guide to concurrency-control by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/640
- docs: correct setup, integration, and dev details by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/641
- docs: fix performance, deployment, and comparison accuracy by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/643
- fix(schema): use configured status type in upgrade migration by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/645
- docs(guides): correct reliability, retry, and completion semantics by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/642
- docs(reference): fix incorrect API references by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/639
- fix(tracing): re-raise from SentryTracing.trace_process by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/646
- fix(tracing): yield one header per entrypoint when SDK is absent by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/647
- docs: add FOR UPDATE SKIP LOCKED deep-dive page by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/637
- docs(agents): exempt MCP tool/prompt docstrings from verbosity rules by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/649
- chore(queries): drop stale issue ref + commented-out fallback by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/651
- fix: correct stale docstrings by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/650
- style: drop banner section headers by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/652
- style: drop module-docstring preambles by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/653
- style: trim docstrings + comment cruft across pgqueuer by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/654
- chore: add 'from future import annotations' to all modules by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/662
- docs(agents): allow short Usage example blocks on public APIs by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/663
- style(ports): trim TracingProtocol class docstring by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/661
- style(completion): trim verbose docstrings by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/660
- style: trim module docstring preambles by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/659
- style: drop banner section headers in domain/types by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/658
- fix(ports): import Job from domain, not shim by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/655
- refactor(tracing): drop type: ignore on optional-import sentinels by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/656
- refactor(cli): drop type: ignore on asyncio.run fallback by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/657
- docs: modernize README with concise structure and fix doc links by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/665
- style: normalize brand casing PGQueuer -> PgQueuer by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/666
- perf: dequeue with per-entrypoint LATERAL, add entrypoint-leading indexes by @trim21 in https://github.com/janbjorge/pgqueuer/pull/668
- test: assert dequeue keeps global priority order across entrypoints by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/669
- test: dequeue plan-regression guard via EXPLAIN ANALYZE by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/673
- fix(cli): expose --heartbeat-timeout on pgq run by @janbjorge in https://github.com/janbjorge/pgqueuer/pull/675
Full Changelog: https://github.com/janbjorge/pgqueuer/compare/v1.0.2...v1.1.0
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About PgQueuer v1.0
All releases →Related context
Earlier breaking changes
- v1.0.0 QueueManager now requires Queries(driver) instead of driver directly; PgQueuer constructor unchanged
- v1.0.0 RetryWithBackoffEntrypointExecutor renamed to DatabaseRetryEntrypointExecutor and no longer depends on async-timeout
- v1.0.0 CLI flags --pg-host, --pg-user etc. removed; use libpq environment variables or --pg-dsn instead
- v1.0.0 Synchronous entrypoint handlers are rejected; only async def is allowed
- v1.0.0 Custom async Driver must implement notify(channel, payload) method
Beta — feedback welcome: [email protected]