mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-11-08 03:30:34 +00:00
* fix(runtime): resume children paused for a withdrawn steer wait_tool pauses every child as soon as a steer is pending, but only a delivered steer sets steering_active, the flag finish_graph needs before it resumes them. Removing the steer before delivery left the children parked and the run waiting on them. Release the children when deliver finds no input and no steer is in progress. They stay paused during later model turns of a delivered steer. * fix(runtime): release children paused by a steer withdrawn mid-turn The steering_active guard skipped the release whenever another steer was being handled. A child started during that turn is outside its interrupted_children snapshot, so nothing resumed it after a second steer was withdrawn and finish_graph waited forever. Release every child a delivered steer does not hold. Each deliver re-takes that snapshot, so a paused child outside it can only belong to a withdrawn steer. * fix(runtime): keep a replacement reusing a call ID out of the held steer interrupted_children stores call IDs, and child() can replace a closed gate under the same ID. The replacement then looked held by an earlier delivered steer, so a withdrawn steer left it paused forever in a replaced turn. Drop the ID when its gate is replaced.