Skip to content

Retain simulator consent requests until the simulator UI can receive them #542

Open

Description

@dajiaohuang

The daemon broadcasts simulator.consent.required when any Hub client is connected, but LinkCodeClient delivers it only to currently registered subscribers. useSimulatorConsentRequest subscribes inside SimulatorPanel; SectionPanelRegion mounts only the active section.

The shell does have SimulatorAutoReveal for agent activity. That does not provide consent-request replay: reveal is limited to the active thread and may already be suppressed for that thread. The MCP endpoint emits activity before awaiting consent, so a newly revealed panel also needs to receive the pending request after it mounts.

Supported failing flow: leave another section active after simulator auto-reveal has been suppressed, then have the agent request a simulator device without a recorded consent decision. No mounted consent subscriber receives the request; opening the Simulator section afterward does not replay it. The tool waits for the ask timeout and is denied despite the app being connected.

Retain pending consent requests at a shared client/host boundary, or mount a consent subscriber independently of the active section. Keep per-device decisions, concurrent-ask sharing, timeout/denial and background-thread reveal behavior intact.

Source reassessment: master 22c337f. This is source-path evidence, not a claim of an executed macOS simulator test.

Activity

  1. pullfrog commented on Oct 4, 2026

    @pullfrog
    Contributor
  2. linear-code commented on Oct 4, 2026

    @linear-code
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions