The fix in #87 covers the synchronous MessageBus path. The gRPC path in ModuleLeadAgent::processYamlModule() and ComponentLeadAgent::processYamlComponent() waits for results via an external callback (processTaskResult). If the coordinator delivers a FAILED status via gRPC, the result_aggregator_ is not consulted and hasFailures() is never set. The gRPC result callback should check hmas::TaskResult::success() and call coordination_.recordFailure() accordingly.
Follow-up from #87
The fix in #87 covers the synchronous MessageBus path. The gRPC path in ModuleLeadAgent::processYamlModule() and ComponentLeadAgent::processYamlComponent() waits for results via an external callback (processTaskResult). If the coordinator delivers a FAILED status via gRPC, the result_aggregator_ is not consulted and hasFailures() is never set. The gRPC result callback should check hmas::TaskResult::success() and call coordination_.recordFailure() accordingly.
Follow-up from #87