1.8 KiB
Prompt
Prime PR #490 for landing, review its concurrent broadcast changes, fix valid findings, and keep the landing pass focused.
Response summary
Rejected an invalid mutable-default finding under msgspec.Struct semantics. Found and fixed a close-time race where concurrent receives on one BroadcastReceiver could overwrite its sole cancellation scope and strand an earlier waiter. The receiver now rejects overlapping calls with trio.BusyResourceError. Public docs now define each receiver as one logical subscription cursor and require one receiver per concurrent lossless consumer. Busy errors identify the active Trio task which owns the receiver.
Files changed
tractor/trionics/_broadcast.py- reject concurrent receives on one receiver handle.tests/test_task_broadcasting.py- prove the second call fails while the original receive remains usable.docs/guide/streaming.rst- document per-task receiver ownership and explicit lag behavior.
Human edits
The human selected PR #490 as the next landing target, rebased it onto current main, directed the agent to continue the landing pass, and required a faster, tightly scoped execution after the review expanded. The human then confirmed the per-receiver guard and required the public method, type, and surrounding guide to emphasize lossless per-consumer semantics. The human also required the regression’s checkpoint loop to explain its synchronization and the busy error to report the active consumer task. The agent applied the source, test, and documentation changes; no direct manual edits to these files were identified.