Added
capture.start()andcapture.end()support lifecycle capture boundaries for flows that cannot
wrap their work in a callback.CaptureScopecan be ended directly, orcapture.end()can end the
currently active lifecycle capture.
Fixed
- Capture root spans now record exceptions and set
ERRORstatus when captured work raises or a
lifecycle capture ends with an error. capture()now keeps context isolated when a synchronous callable returns a coroutine, so
concurrent wrapper-mode captures such asasyncio.gather(capture("a", lambda: task_a()), ...)
do not leak the last capture context into every task.