Problem
list-devices returns every simulator/emulator/phone/Chromium target with state but no ownership, and the device-selection guidance in rules/argent.md says to "prefer a running device" (booted devices are listed first).
On a shared machine — several concurrent agent sessions plus a human — the running device is usually someone else's, and the listing actively promotes it. External device-lease registries (we run one that writes one JSON lease per device) have no way to inform argent's selection, so every agent has to be taught out-of-band not to trust the listing.
Checked against v0.18.0: no config surface for this.
Proposal
A config key naming an executable claim provider, e.g.:
devices.claimProvider = /path/to/cmd
argent runs it on list-devices (expects JSON { "<udid|serial>": {"owner": "<label>", "mine": true|false}, ... } on stdout, empty object or non-zero exit treated as "no claims") and:
- merges
owner/mine fields into list-devices output, and
- amends the selection guidance to "prefer a running device you own; treat owned-by-others as busy".
This keeps argent lease-agnostic — any allocation scheme plugs in — while making multi-tenant machines safe by default instead of by convention.
Related: #754, #755.
Problem
list-devicesreturns every simulator/emulator/phone/Chromium target with state but no ownership, and the device-selection guidance inrules/argent.mdsays to "prefer a running device" (booted devices are listed first).On a shared machine — several concurrent agent sessions plus a human — the running device is usually someone else's, and the listing actively promotes it. External device-lease registries (we run one that writes one JSON lease per device) have no way to inform argent's selection, so every agent has to be taught out-of-band not to trust the listing.
Checked against v0.18.0: no config surface for this.
Proposal
A config key naming an executable claim provider, e.g.:
argent runs it on
list-devices(expects JSON{ "<udid|serial>": {"owner": "<label>", "mine": true|false}, ... }on stdout, empty object or non-zero exit treated as "no claims") and:owner/minefields intolist-devicesoutput, andThis keeps argent lease-agnostic — any allocation scheme plugs in — while making multi-tenant machines safe by default instead of by convention.
Related: #754, #755.