5b26caca0c
The blocking send previously resolved only on an explicit bridge_reply; a real delegated task (edit files, run a build) finishes and goes idle without ever calling it, so the send always timed out. The injector now reports a confirmed working -> idle turn boundary via a TurnListener; CompletionResolver scrapes the worker's transcript tail and resolves the awaiting send (Rendezvous.resolveCompletion, Kind.COMPLETION -> Outcome.COMPLETED_UNREPLIED), surfaced as replySource=transcript at the REST/MCP edges. Completion is synthesized only from a confirmed turn (a sampled 'working'), never from the pickup-grace path, so it can't race the explicit reply or fire on a turn that never ran.