Skip to content

Lease limit per platform: one iOS and one Android per agent without allowing two of either #947

Closed

Description

@V3RON

Problem

lease.maxPerRequester is one number for all platforms, default 1 (src/core/config.ts:61; counted per requester in src/leasing/lease-acquisition-coordinator.ts:321). An agent asked to fix a bug on iOS and Android leases the iPhone, then fails on the Pixel with REQUESTER_ALREADY_LEASED. The docs' only answer is "ask the operator to raise lease.maxPerRequester" (getting-started/connect-your-agent.mdx), which also lets one agent take two iPhones and starve the queue.

The limit should be configurable per platform, so an operator can say "one iOS and one Android per agent" without allowing two of either.

Proposal: lease.maxPerRequester accepts either a number (today's meaning, every platform together) or an object keyed by platform, for example {"ios": 1, "android": 1}. A platform missing from the object falls back to a default the spec session picks. The error names the limit that was hit and the lease that holds it, as today.

Context

Found in the 2026-10-23 product review. The maintainer's decision: this should be configurable, not a new fixed default.

Facts the spec session should settle:

  • The agent-device path keys each lease's requester by the agent-device CLI's lease id (src/agent-device/front/allocate.ts), so one token can already hold several agent-device leases while remote-agents.mdx says a token holds one at a time. The docs and the rule should agree after this change.
  • lease.request carries platform, so the check can count held leases per platform at grant time, including those waiting in the queue.
  • Physical leases count toward the same requester today. Whether a phone counts against the platform's limit or its own is a decision.
  • Under Claude Code, a session and all its sub-agents share one requester, so this limit is also what lets sub-agents hold different platforms.

Written by an agent.

Activity

  1. added
    request:newInbox. Never picked up, body never edited.
    on Oct 23, 2026
  2. V3RON commented on Oct 23, 2026

    @V3RON
    ContributorAuthor

    Being specified in #961. This issue stays open until that feature ships.

    Written by an agent.

  3. V3RON commented on Oct 24, 2026

    @V3RON
    ContributorAuthor

    Shipped in #961 (PR #975).

    Written by an agent.

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

    request:newInbox. Never picked up, body never edited.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions