Finding
Severity: MAJOR
Section: 4
Evidence: src/agents/chief_architect_agent.cpp:60-66
Principle: SOLID
ChiefArchitectAgent::sendCommand() calls the synchronous getMessage() method inside a C++20 coroutine (co_return / co_await function). This creates a broken async contract: the coroutine blocks waiting for a message via synchronous polling rather than suspending. This is a latent race condition and architectural inconsistency that would be triggered under concurrent message bus usage.
Part of #504
Finding
Severity: MAJOR
Section: 4
Evidence: src/agents/chief_architect_agent.cpp:60-66
Principle: SOLID
ChiefArchitectAgent::sendCommand() calls the synchronous getMessage() method inside a C++20 coroutine (co_return / co_await function). This creates a broken async contract: the coroutine blocks waiting for a message via synchronous polling rather than suspending. This is a latent race condition and architectural inconsistency that would be triggered under concurrent message bus usage.
Part of #504