feat(limrun): share Android text and performance reads

Merged
MU
3h ago
+490-27

Summary

Limrun Android snapshots were available, but live text and performance reads were refused. This 23-file change binds the shared text reader and Android performance operations to the session's ADB tunnel. It enables frame statistics, memory samples, and downloaded HPROF snapshots with local parsing and artifact handling. One owner resolver now reports lost sessions consistently across text, lifecycle, runner, and catalog operations. Cancellation during binding prevents work from starting.

This follows #4225. #4275 adds instance lifecycle commands separately. Native profiling remains deferred.

Examples: agent-device get text @e1, agent-device perf frames sample, agent-device perf memory snapshot --kind android-hprof.

Validation

At 3848d114b36d6de352ee20827fbb8e4cda9996c1, pnpm check:affected --run --head HEAD passed with exactCommit: true. Receipt, regression tests, and live results. The catalog lost-lease regression fails on 99be56862 and passes here. Independent review found no issues.

A fresh Limrun Android run verified native helper text without fallback, frame/memory samples, and a 33,521,774-byte HPROF. All resources were cleaned up. Full coverage and 100% changed-line coverage previously passed at 99be56862; GitHub owns coverage and device checks for the new head.


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.