0.4.4 (July 6, 2026)

This release adds a small but important source-runtime hook so official plugin sources can complete cleanup only after a source-scoped failure has been durably handled.

Runtime correctness

  • SourceRecordError now accepts an optional on_handled callback for post-routing cleanup that should only run after the runtime has durably handled the failed record.
  • The pipeline executor now invokes SourceRecordError.on_handled() only when a source-scoped failure was successfully routed through the configured DLQ path.
  • This makes reclaimed-source cleanup flows replay-safe for plugin backends that must defer acknowledgements or similar follow-up work until failure routing has succeeded.

Plugin compatibility

  • Official plugin sources can now attach handled-only cleanup hooks without relying on private runtime behavior.
  • This is an additive release on the 0.4.x line and is intended as the core companion for plugin releases that need post-DLQ source cleanup semantics.

Upgrade notes

  • No config migration is required for existing pipelines.
  • Custom sources that raise SourceRecordError can keep existing behavior unchanged; on_handled is optional.