feat: add direct Limrun provider runtime#1278
Conversation
Size Report
Startup median (7 runs, lower is better):
Top changed chunks:
|
|
Thermo-nuclear code-quality reviewOverall this is a well-shaped PR. The That said, there are a few structural issues I'd want addressed before merge. Two are load-bearing. 1.
|
14a76a7 to
4042d69
Compare
|
Blocking review finding at
The latest architecture/device-selection fixes and all 23 checks are green, but this runtime-availability gap blocks merge because it can silently execute against the wrong device class. |
Thermo-nuclear code-quality review — direct Limrun provider runtimeReviewed the full diff against the merge-base ( The notes below are what I'd want addressed before merge. Two are should-fix; the rest are reuse/cleanup that this PR is a good moment to land. I also flag one structural direction and one process item. 🔴 Should-fix1. 2. 🟡 Reuse-from-core (the thing you asked me to hunt for)3. 4. iOS install derives a worse app name than the codebase already computes. 5. Android adb errors bypass 6. Small dups: 🟢 Minor
🧭 Structural direction (not blocking)The iOS side reimplements a ~270-line ⚙️ ProcessThe branch is 2 commits behind Net: request changes on #1 and #2, land the reuse cleanups (#3–#6) while you're here, and file the iOS-interactor-seam follow-up. The core design is good. |
|
Current-head re-review (
Please restrict the guard to providers that require direct runtime ownership (or otherwise model provider kind explicitly), and add a regression proving |
ee1ac81 to
9997097
Compare
|
Current-head re-review (
|
|
Current-head re-review (
Current CI is green except iOS Smoke in progress and Swift Runner Unit Compile queued, but these code findings block |
|
Reviewed exact head
CI is mostly green; Linux/macOS/iOS smoke and Swift runner compile were still pending/queued at review time. No |
|
Reviewed exact head Two P1 durability gaps still block readiness:
All CI checks are green, but that does not override these lifecycle findings. Live provider evidence for iOS relaunch and outage -> restart recovery is also still missing. No |
|
Implemented and pushed Added revert-sensitive coverage for non-recoverable live release/retry, provider routing, and a real Cloud WebDriver allocation → expiry release that asserts Validation: focused lifecycle tests 22/22; Cloud WebDriver provider integration 7/7; relevant request-router tests 15/15; build, format, lint, typecheck, layering, and Fallow green. Broad sandboxed suites hit unrelated localhost/host-permission and contention failures; relevant Cloud WebDriver tests passed when rerun with localhost access. Fresh CI is now running on the pushed head. |
|
Follow-up |
5c2734e to
3dd9354
Compare
|
Exact-head re-review ( Restore the process-local release/retry path for active non-recoverable providers (or an equivalent lifecycle-owner cleanup), while keeping persisted restart recovery limited to reconstructable providers. Restore a revert-sensitive CloudWebDriver expiry regression proving the live runtime release/DELETE path runs. This head is not |
Summary
Adds
agent-device connect limrunbacked by a direct Limrun provider runtime for iOS and Android.The shared provider runtime remains limited to lease lifecycle, inventory, interactor dispatch, install hooks, optional port reverse hooks, and shutdown. Limrun API calls, assets, ADB tunnel handling, Android snapshot/helper reuse, and iOS tree mapping remain local to
src/providers/limrun.Android provider interactor composition now lives in core so future direct Android providers can reuse the same ADB-backed interaction stack without importing platform internals. The runtime tags Limrun requests and instance metadata with agent-device identity.
Validation
pnpm check:affected --base origin/main --runpnpm check:layeringpnpm exec vitest run src/__tests__/limrun-runtime.test.ts src/platforms/android/__tests__/app-lifecycle-open.test.ts