fix(python): release obsolete job output watchers

Use weak callbacks and clear obsolete watchers while preserving early-read notifications and retention limits. Benchmark: retained memory falls 73%, from 5.02 to 1.35 MiB after 256 jobs.

6c003b5d parent 48eabe56 +127 −5
browse files