Skip to content

proxy lease: name a backend baseline with --device-baseline #4235

Open

Description

@V3RON

The problem

A proxy lease cannot name a Simlock baseline (a saved, prepared device state). Simlock's lease.request takes baseline, but LeaseDeviceSpec has no key for it, so open through connect proxy always gets a factory device. The name --baseline is taken by diff screenshot --baseline <file>.

Proposal

Add deviceBaseline to the lease device spec, like deviceMode:

  • --device-baseline <name> on open, install, reinstall, uninstall (flag key deviceBaseline), in LEASE_DEVICE_SPEC_KEYS; a blank string names nothing, a non-string is device-spec-invalid.
  • A daemon refuses it with device-spec-unsupported, as for the other spec keys.
  • LeaseDevice gains baseline?: { name: string; version: number }. A new lease allocated with deviceBaseline whose lease.device.baseline.name is not the requested name is released and the request fails with device-spec-unsupported, as today for a missing lease.device.
  • A reused lease serves a command naming deviceBaseline only when it was allocated with the same name.
  • connect proxy stores it like the other spec keys; MCP and the SDK carry it.

Simlock side: callstackincubator/simlock#1308 (task #1312). Its front maps deviceBaseline to lease.request.baseline, drops target when a baseline is named, strips the key before the daemon, and echoes data.lease.device.baseline {name, version}.

Written by an agent.

Activity

  1. thymikee commented on Nov 6, 2026

    @thymikee
    Member

    Triage: enhancement; covered by PR #4236. On main, LEASE_DEVICE_SPEC_KEYS in packages/contracts/src/lease-scope.ts has no baseline key, and --baseline is already taken by diff screenshot, so --device-baseline follows the deviceMode pattern. Review continues on #4236.

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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions