Skip to content

Apple runner: bound every runner phase by the request's absolute deadline #4023

Open

Description

@thymikee

Follow-up from #4017 (#3861).

Context. #4017 binds an absolute deadline only to the iOS launch-confirmation alert commands, and only at the last step before sending. That step comes after the readiness preflight in sendRunnerCommandAfterPreflight, through an opt-in RunnerCommand.deadline. The other runner phases still run on their own budgets, so a request can outlive its caller:

  • runner startup and log preparation;
  • the readiness preflight's own budget;
  • the up-to-45 s exchange;
  • read-only resends.

The runner also does not cancel work when HTTP disconnects (runner-exchange.ts).

Required behavior.

  • A request's absolute deadline bounds every runner phase for any command that carries one.
  • No phase starts after the deadline.
  • A phase that is already running is capped at the time left.
  • Expiry returns a typed failure, and keeps unknown-effect reporting for work that was already dispatched.

Out of scope. Changing the default budget of any command that has no deadline.

Activity

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

    backlogLower priority / backlogenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions