v1.1.0
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 #635
- chore: remove unused scripts and dedupe .gitignore by @janbjorge in #636
- test(tracing): cover sentry and logfire adapter behaviour by @janbjorge in #648
- test(qm): cover entrypoint registration input validation by @janbjorge in #638
- docs: rename rate-limiting guide to concurrency-control by @janbjorge in #640
- docs: correct setup, integration, and dev details by @janbjorge in #641
- docs: fix performance, deployment, and comparison accuracy by @janbjorge in #643
- fix(schema): use configured status type in upgrade migration by @janbjorge in #645
- docs(guides): correct reliability, retry, and completion semantics by @janbjorge in #642
- docs(reference): fix incorrect API references by @janbjorge in #639
- fix(tracing): re-raise from SentryTracing.trace_process by @janbjorge in #646
- fix(tracing): yield one header per entrypoint when SDK is absent by @janbjorge in #647
- docs: add FOR UPDATE SKIP LOCKED deep-dive page by @janbjorge in #637
- docs(agents): exempt MCP tool/prompt docstrings from verbosity rules by @janbjorge in #649
- chore(queries): drop stale issue ref + commented-out fallback by @janbjorge in #651
- fix: correct stale docstrings by @janbjorge in #650
- style: drop banner section headers by @janbjorge in #652
- style: drop module-docstring preambles by @janbjorge in #653
- style: trim docstrings + comment cruft across pgqueuer by @janbjorge in #654
- chore: add 'from future import annotations' to all modules by @janbjorge in #662
- docs(agents): allow short Usage example blocks on public APIs by @janbjorge in #663
- style(ports): trim TracingProtocol class docstring by @janbjorge in #661
- style(completion): trim verbose docstrings by @janbjorge in #660
- style: trim module docstring preambles by @janbjorge in #659
- style: drop banner section headers in domain/types by @janbjorge in #658
- fix(ports): import Job from domain, not shim by @janbjorge in #655
- refactor(tracing): drop type: ignore on optional-import sentinels by @janbjorge in #656
- refactor(cli): drop type: ignore on asyncio.run fallback by @janbjorge in #657
- docs: modernize README with concise structure and fix doc links by @janbjorge in #665
- style: normalize brand casing PGQueuer -> PgQueuer by @janbjorge in #666
- perf: dequeue with per-entrypoint LATERAL, add entrypoint-leading indexes by @trim21 in #668
- test: assert dequeue keeps global priority order across entrypoints by @janbjorge in #669
- test: dequeue plan-regression guard via EXPLAIN ANALYZE by @janbjorge in #673
- fix(cli): expose --heartbeat-timeout on pgq run by @janbjorge in #675
Full Changelog: v1.0.2...v1.1.0