The daemon sends simulator.consent.required when any hub client is connected, but the client event is delivered only to current subscribers. The consent hook is owned by SimulatorPanel, and the shell mounts only the active section; when another section is active, no subscriber receives the request and there is no pending-request replay or automatic reveal. An agent's simulator action then waits for the ask timeout and is denied even though the user has the app open. Retain pending requests in shared state or mount a subscriber that can present them regardless of the active section.
The daemon sends simulator.consent.required when any hub client is connected, but the client event is delivered only to current subscribers. The consent hook is owned by SimulatorPanel, and the shell mounts only the active section; when another section is active, no subscriber receives the request and there is no pending-request replay or automatic reveal. An agent's simulator action then waits for the ask timeout and is denied even though the user has the app open. Retain pending requests in shared state or mount a subscriber that can present them regardless of the active section.