You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Removed tracemalloc from the timed path of both core and plugin benchmark
lanes so throughput numbers are no longer distorted by heap sampling
overhead
Updated the core and plugin benchmark reports to hide Peak Py Heap when
heap sampling is intentionally disabled and to explain that throughput is now
measured without tracemalloc
Kept the benchmark lane split (core, Kafka, Redis) but made the
generated reports better match what they actually measure in practice
Runtime Fixes
Fixed trace_span() to return a zero-allocation singleton scope when NoopTracer is active, eliminating per-record span object allocation on the
hot path for pipelines that do not collect traces
Fixed MapMiddleware to cache whether its callable is async at construction
time instead of re-running coroutine-function inspection for every record
Fixed SinkFanOut.write() to use the same _WRITE_OK singleton fast path
that write_batch() already used for single-sink pipelines, avoiding
unnecessary list allocation per record
Fixed MiddlewareChain.stop_all() to continue stopping remaining middlewares
when one raises during shutdown, logging each failure instead of aborting the
shutdown sequence early
Fixed AIBatchMiddleware.submit() variable shadowing that caused UnboundLocalError when the queue was active
Replaced deprecated asyncio.iscoroutinefunction() usage with inspect.iscoroutinefunction() in the middleware and CLI paths that still
used the old helper
Type Checking
Added Any imports and type annotations to untyped functions across cli/, config/, core/, runner/, middlewares/, sinks/, sources/, schema/, metrics/, and ai/ modules
Fixed on_error parameter defaults in all AI middleware subclasses to use OnError.PASSTHROUGH enum value instead of the bare string "passthrough"
Fixed asyncio.Task, asyncio.Future, and dict generic type arguments
throughout the codebase
Removed stale and incorrect type: ignore comments that mypy flagged as
unused after other fixes landed