refactor(provider-limrun): ship Limrun as the `@agent-device/limrun` plugin
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- android, ios, node.js, typescript
- Ambito
- developer-experience, mobile
Direzione di ricerca
Start with #2112 and its Doublespeed plugin route, then read packages/provider-limrun, src/sdk/limrun-runtime-dependencies.ts, src/provider-limrun-credentials.ts, and scripts/check-provider-plugin.mjs. Decide how per-backend credential fingerprinting survives the plugin boundary and record the choice in plugins.md. Completion includes the specified daemon and provider-scenario tests passing against the plugin factory, a reduced default-install size report, and live iOS and Android sessions with the packed plugin.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Purpose and evidence
0.22 stops bundling hosted device providers with the default installation. Limrun is the largest bundled provider and the only one with a public SDK surface: packages/provider-limrun (about 9 kLOC with tests), @limrun/api dev-bundled through tsdown.config.ts (with the @limrun/xdelta3-wasm omission alias), the agent-device/limrun export (src/sdk/limrun.ts, LimrunRuntime, session types documented in client-api.md), the LIMRUN_*/LIM_*_INSTANCE_* credential reader in src/provider-limrun-credentials.ts, the Android ADB and Apple host adapters in src/sdk/limrun-runtime-dependencies.ts, and connect limrun in src/cli/connection/limrun-profile.ts. Doublespeed (#2112) is the template for a direct instance provider as a plugin: it returns { runtime, platformModule, connection } and receives Apple helpers through host.apple.
Required behavior and boundary
- New publishable package
@agent-device/limrun(renamepackages/provider-limrun), ESM with@limrun/apias a regulardependenciesentry, not bundled: users then get Limrun andundicisecurity fixes on reinstall or through their ownoverrides, without an agent-device release. Remove the@limrun/apialwaysBundle/neverBundleentries and the@limrun/xdelta3-wasmomission alias fromtsdown.config.ts; the plugin's install size (about 4.1 MB for@limrun/apiplusundiciandws) is accepted. Manifest declaresprovider: "limrun", theconnectioncapabilities core hardcodes today (supportsDeferredAppSelection,supportsDirectPortReverse), andcredentialVariablescovering the account and instance variables. Core's per-platform fingerprint narrowing (readLimrunCredentialValuesby lease backend) must survive: either the manifest grows a per-backend credential declaration or the plugin keeps a fingerprint hook; decide in the PR and record it inplugins.md. ProviderPluginHostgains what Limrun needs beyond Doublespeed'shost.apple: the Android ADB adapters (createInteractor, port reverse, app listing, logcat, keyboard state) anddownloadFile/archiveDirectory. Keep the SDK declaration small; prefer onehost.androidfacet mirroringsrc/sdk/limrun-runtime-dependencies.ts.connect limrunmoves into the plugin'sconnection.resolve/verify, including the instance-variable validation and the--devicerefusal. Core deleteslimrun-profile.ts,provider-limrun-credentials.ts,provider-limrun-runtime.ts, thelimrunbranches inprovider-policy.ts,provider-credential-fingerprint.ts,provider-device-runtimes.ts, and theprovider_runtime_skippedpartial-instance handling, or moves them behind the plugin seam.- Public API:
agent-device/limrunis removed from the core exports (breaking, called out in the 0.22 release notes) or re-pointed at the plugin package;client-api.md,limrun.md,device-clouds.md,plugins.md, help topics, and the README follow.
agent-device plugins add @agent-device/limrun
export LIMRUN_API_KEY=...
agent-device connect limrun --platform android
Completion and validation
node scripts/check-provider-plugin.mjs packages/provider-limrunpasses.src/__tests__/limrun-runtime.test.ts, the Limrun daemon tests (http-server-limrun-uploaded-apps, provider-credentials, lease-expiry) and the provider-scenario suites run against the plugin factory.- Size report shows the default install dropping the Limrun runtime and
@limrun/api. - Core keeps
undicibundled for its own callers (MaestrorunScriptHTTP, provision-kit install downloads), so core stays free of runtimedependencies. After the move,pnpm why -r undicishows@limrun/apiresolvingundicionly inside the plugin's dependency tree, and core's bundled copy is pinned only by the root, maestro, and provision-kit manifests (noundici@7override, as since #3363). - One live Limrun iOS and one Android session with the packed plugin, recorded in the PR.
Dependencies and readiness
Blocked by: #2112 landing (shapes host.apple and the direct-provider plugin route) and the BrowserStack/AWS extractions in this milestone. After both Limrun and Doublespeed are plugins, #2616/#2624 (shared app-log poller) and the other mirrored modules (facts runtime, interaction operations, deployment runtime) can be extracted into a shared instance-provider kit without touching core.
Effort: L. Risk: high (public SDK surface, host adapters, credential fingerprint semantics).
- Lingua principale
- TypeScript
- Stelle
- 4.9k
- Fork
- 328
- Merge medio
- 12h 18m
- PR unite (30g)
- 561
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di callstack/agent-device
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
callstack/agent-device#3407 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
callstack/agent-device#3353 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
callstack/agent-device#1869 ·
I maintainer di solito rispondono entro 1 giorno
-
needs-triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 76/100
callstack/agent-device#3453 ·
I maintainer di solito rispondono entro 1 giorno
-
CRAP: newly scored platform-apple simulator boot retry and macOS helper file listingForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
callstack/agent-device#3451 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di callstack/agent-device
Issue simili
-
Bayern feature:Application ready web
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
digitalfabrik/entitlementcard#3176 ·
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
NanmiCoder/cc-haha#1533 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
🐛 Bug: Calendar work items cannot be opened on mobileForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100