Host integration: use Simlock as the local device allocator
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- android, ios, typescript
- Domain
- backend, devtools, mobile-dev
Research direction
Start with ADR 0021 and the linked work items #71-#78 to understand the Host–Simlock boundary and split the work into its defined slices. Use the completion conditions as the acceptance checklist: local concurrent leases, restart-safe retries, capacity ownership, compatibility rejection, durable maintenance, safe cleanup, and Android claim continuity.
Written by the indexing model from the issue text.
Description
Purpose
agent-device Host will use a local Simlock daemon to supply managed devices.
Host owns network access, user identity, sessions, automation, artifacts, and supervision. Simlock owns device allocation, capacity, lifecycle, health, and cleanup.
Host uses the Simlock Unix socket. Simlock does not need a new public network API.
ADR 0021 defines this boundary.
Required work
- #71: Export a supported typed client for the local daemon.
- #72: Store lease requests so that clients can recover them after a restart.
- #73: Put managed iOS simulators in an owned device set.
- #74: Store provisioning intent before a driver creates a device.
- #75: Create a new iOS simulator identity for each lease.
- #76: Add small, configured warm targets.
- #77: Add a durable maintenance mode.
- #78: Add durable admin-only component preparation.
Platform rules
- iOS creates a new simulator identity for each Host lease. Simlock deletes the simulator after release, expiry, or recovery-driven lease termination.
- Android can reuse an emulator identity. Simlock must check the clean state after Host installs an execution fence.
- Host keeps the managed execution claim for an Android identity during its full pool lifetime, including idle and reclaim states. Host clears the claim only after Simlock proves that the identity was removed.
Related work
- #67 and #69 provide the platform installers that #78 uses. The local-first Host slice can use components that are already installed. Host must not let an ordinary lease request enable a download.
- #65 and #68 add an optional HTTP interface. Host does not use this interface.
- #66 uses Simlock as a network provider. Host uses Simlock as a local allocator instead.
Completion conditions
- One local connection can control concurrent leases up to the configured capacity.
- A retry or process restart cannot create a duplicate lease.
- Simlock is the only owner of capacity and managed-device lifecycle.
- Simlock rejects an incompatible client before a mutation starts.
- Maintenance stays active after a restart.
- Cleanup cannot change a foreign device.
- A reusable Android identity cannot become unclaimed between leases or during reclaim.
- Dominant language
- TypeScript
- Stars
- 14
- Forks
- 0
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 49
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from callstackincubator/simlock
-
bug:ready
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
callstackincubator/simlock#79 · 5 comments ·
Maintainers usually reply within 1 day
-
Configure Android emulator launch options (headless, GPU, audio, boot animation) from the config filePossibly taken @V3RON claimed this today. Opentask:ready
callstackincubator/simlock#148 · 1 assignee ·
Maintainers usually reply within 1 day
-
Add `simlock instructions`: the rules an agent must follow, printable and served over MCPPossibly taken @V3RON claimed this today. Opentask:ready
callstackincubator/simlock#147 · 1 assignee ·
Maintainers usually reply within 1 day
-
feature:spec
Difficulty 5/5 Over a week Newbie friendliness 28/100
callstackincubator/simlock#88 · 1 comment ·
Maintainers usually reply within 1 day
-
task:draft
Difficulty 5/5 Over a week Newbie friendliness 38/100
callstackincubator/simlock#78 ·
Maintainers usually reply within 1 day
All issues in callstackincubator/simlock
Similar issues
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 88/100
StabilityNexus/Fate-EVM-Frontend#153 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
code-yeongyu/oh-my-openagent#9039 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Tencent/teamai-cli#862 ·
Maintainers usually reply within 1 day
-
bug good first issue hacktoberfest redis
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
libredb/libredb-studio#1164 ·
Maintainers usually reply within 1 day
-
flake
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day