pub async fn tool_worker(
jobs: SharedJobRx,
results: UnboundedSender<ToolOutcome>,
wake: Arc<Notify>,
)Expand description
One tool worker: pulls ToolJobs from the shared channel and runs them,
reporting each outcome and waking the tick loop. Holds the receiver lock only
across recv() (so sibling workers can run their exec().await in parallel),
then releases it before executing. Returns when the job channel is closed (all
senders dropped - i.e. the world is shutting down).