Repository navigation
chore: bump @metamask/device-mcp to ^0.6.0 - #69
Open
cryptotavares wants to merge 1 commit into
Open
cryptotavares wants to merge 1 commit into
cryptotavares wants to merge 1 commit into
Conversation
0.6.0 adds: - iOS: read the nested `idb ui describe-all` format, so the element tree keeps its hierarchy (MetaMask/device-mcp#38). - Android: the default snapshot mode is now `helper-first`. The ADB backend installs a signed test-only helper APK on the device on first use (`adb install -t`, then a signer check) and captures without waiting for idle, with `uiautomator dump` as the fallback. This is faster and correct on busy screens, where `uiautomator dump` times out or returns "could not get idle state" (MetaMask/device-mcp#39). `DEVICE_MCP_ADB_SNAPSHOT=dump` keeps the old behaviour. The flat mobile tree (`feat!: flat mobile a11y tree without layout-only nodes`) and the mobile snapshot changes (`feat: filter mobile status/nav bars and dev overlay`) were measured against these device-mcp changes. Core does not use the new `snapshotMode`, `source` or `captureMs` fields. The README notes the helper install and the opt-out.
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
cryptotavares
marked this pull request as ready for review
October 28, 2026 13:37
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack context: mm CLI v2, Phase 1, P1-30. Base: #68, the top of the stack; review that first.
Problem
Core pins
@metamask/device-mcp^0.5.0(#58). On 0.x a caret range does not pick up 0.6.0. Without 0.6.0:idb ui describe-allformat, so the element tree loses its hierarchy (device-mcp#38).uiautomator dump. On busy screens this waits about 11 s for an idle state, then fails with "could not get idle state" (device-mcp#39).#44 (flat mobile tree) and #67 (mobile snapshot filtering) were measured against yalc builds of those two device-mcp PRs.
Solution
Adopt the device-mcp 0.6.0 release through the dependency range and the lockfile. Add one README sentence about the new Android helper install.
flowchart TD A[Mobile describe / observation] --> B[Core MobilePlatformDriver] B --> C{device-mcp 0.6.0 snapshot} C -->|iOS| D[idb describe-all, nested format read] C -->|Android default helper-first| E[Signed helper APK, no idle wait] E -->|non-trust failure| F[1 uiautomator dump attempt] D --> G[Core flat tree, refs, testIds] E --> G F --> G classDef new fill:#fff3cd,stroke:#d39e00 class D,E,F newYellow boxes are new in 0.6.0.
What changes
package.jsondependency range@metamask/device-mcp ^0.5.0^0.6.0yarn.lockresolutionuiautomator dumpfirstDEVICE_MCP_ADB_SNAPSHOT=dumprestores the old pathREADME.mdDecisions for reviewers
chore:, not breakingSnapshotResultonly gains optional fields (source,captureMs), and core reads onlyhierarchy. The new Android default is a dependency runtime change on the consumer's backend, not a change to core's API.snapshotModeDeviceBackend(Mobile usesAdbBackenddirectly). Core only documents the default and the opt-out.Review guide
package.json^0.6.0.yarn.lockREADME.mdTesting
Unit and lint (at afaf75c, device-mcp 0.6.0 from npm, no yalc):
yarn buildOK,yarn test51 files / 1793 tests pass,yarn lintpasses (including the dedupe and constraints checks).Device proof: Mobile with this branch's core (yalc) and device-mcp 0.6.0 from npm (no yalc device-mcp). Real-funds wallets; only read actions, tab bar Home/Explore, account list open/back and settings list (no row opened).
Node counts are identical to the yalc device-mcp measurements used for #44 (
measure-tree.sh):Android helper path: the emulator had helper 0.5.0. On the first snapshot, device-mcp 0.6.0 installed its bundled, signed 0.6.0 helper, and the signer check passed. During the smoke run, logcat shows 106 helper runs and 0
uiautomatorruns.Known and unchanged: on Android, 3 of 4 navigation observations still show the previous screen (same as before this bump). That is tracked separately.