0.167.18
Fixed
pendingInjectionsтерялись при teardown актора — результаты субагентов исчезали ( — P1).cleanupSubagents(defer каждого хода) выполнялflushPendingBatchLocked()и следующей же строкой обнулялa.pendingInjections = nil— результат асинхронного субагента, завершившегося после финального ответа родителя (контракт P1-5 «терминальность финального ответа», runner.go: результат остаётся в очереди actor’а и доезжает черезinjectionCallbackследующего хода), добавленный flush’ем в срез терялся безвозвратно: пользователь не получал результат делегированной работы, агент не знал, что задача выполнена, и мог запустить её повторно. Фикс:pendingInjectionsне обнуляются teardown’ом — чистятся толькоpendingBatch(после flush пуст) и счётчикactiveSubagents; результат субагента, пережившего cancel (WaitForChildren-таймаут) и завершившегося между ходами, доезжает до модели следующего хода. Тесты: положительные — батч переживает teardown и доступенinjectionCallbackследующего хода; результат, добавленный ПОСЛЕ teardown, доезжает (эквивалент debounce-flush); отрицательные — пустая очередь при teardown без паники/idempotent, превышениеsubagentBatchCap— cap+1 результатов доезжают без потерь;TestActor_CleanupSubagentsперепинен на новый контракт (раньше фиксировал баговое обнуление).