Files
deepseek-harness/packages/subagent/subagent-inprocess/tests
Tianyi Cui 3987425547 subagent-inprocess: stop the structured nudge loop once cancellation lands
A cancel that lands AFTER a child's clean turn end but before the nudge
continuation runs clears nothing — child.cancel() only kills queued or
running work — so the loop's turn-state check alone let a later
child.send() spend a fresh post-cancellation turn (and even capture a
structured result the caller had already abandoned). The loop condition
now also reads the run's own cancelled flag, re-evaluated after every
whenIdle(), through an accessor because closure assignments are
invisible to control-flow narrowing (an inline read lints always-true).
readResult keeps the outcome honest on this path: a completed-but-
uncaptured turn maps to aborted, not error, when a cancel is why the
nudging stopped — the cancel contract outranks the schema shortfall.
2026-07-06 21:03:40 +08:00
..