@deeeed/metamask-harness 0.51.2 → 0.51.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.51.4 - 2026-09-14
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Mobile `launch --build` recovery: when the freshly built client does not answer the bridge, the harness restarts that client instead of building it a second time. Two full slot prepares had spent a second 20-minute build on an app that only needed a relaunch (first launch after a clean rebuild crashed in expo-modules on both machines; the second launch worked).
|
|
10
|
+
- Mobile `verify` live smoke: the `cdp.target` probe's bridge status call now gets the node's one-minute budget (`cdp_timeout_ms`) instead of the 10-second bridge default, so an app still hydrating accounts right after a fixture unlock is not reported as "did not expose a selected app route".
|
|
11
|
+
## 0.51.3 - 2026-09-14
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- `fixtures set` on mobile bounds the setup-wallet leaf at six minutes instead of two: after an unlock the app hydrates every account before it answers the bridge again, and a large fixture on a loaded Mac took past the old bound while the wallet itself reached the unlocked home screen. `MM_HARNESS_FIXTURES_SET_TIMEOUT_MS` still overrides it.
|
|
5
16
|
## 0.51.2 - 2026-09-14
|
|
6
17
|
|
|
7
18
|
### Fixed
|
|
@@ -447,7 +447,7 @@ if [ "$STATIC_ONLY" = false ]; then
|
|
|
447
447
|
"entry": "status",
|
|
448
448
|
"nodes": {
|
|
449
449
|
"status": { "action": "app.status", "intent": "Read Mobile app status through the v1 runner", "next": "cdp-probe" },
|
|
450
|
-
"cdp-probe": { "action": "cdp.target", "intent": "Verify the React Native debug bridge target is reachable", "require_reachable": true, "timeout_ms":
|
|
450
|
+
"cdp-probe": { "action": "cdp.target", "intent": "Verify the React Native debug bridge target is reachable", "require_reachable": true, "timeout_ms": 60000, "cdp_timeout_ms": 60000, "next": "done" },
|
|
451
451
|
"done": { "action": "end", "status": "pass" }
|
|
452
452
|
}
|
|
453
453
|
}
|
|
@@ -10,6 +10,7 @@ import { applyDeviceTargeting } from "./device-target.js";
|
|
|
10
10
|
import { ADAPTER_DETECT_NEXT, checkoutBusyOut, EXIT, flag, parseFlags, resolveAdapter, scriptOverride, spawnScript, spawnScriptStreaming, str, targetOf, usageOut } from "./shared.js";
|
|
11
11
|
const FIXTURES_BOOLEANS = /* @__PURE__ */ new Set(["dev", "force", "json"]);
|
|
12
12
|
const FIXTURE_STREAM_TIMEOUT_MS = 12e4;
|
|
13
|
+
const MOBILE_SETUP_WALLET_TIMEOUT_MS = 36e4;
|
|
13
14
|
async function handleFixtures(argv) {
|
|
14
15
|
const { positional, options } = parseFlags(argv, FIXTURES_BOOLEANS);
|
|
15
16
|
if (!positional[0]) return fixturesStatus(options);
|
|
@@ -246,8 +247,8 @@ async function handleFixturesLocked(argv) {
|
|
|
246
247
|
}
|
|
247
248
|
}
|
|
248
249
|
}
|
|
249
|
-
const configuredTimeout = Number(process.env.MM_HARNESS_FIXTURES_SET_TIMEOUT_MS ??
|
|
250
|
-
const timeoutMs = Number.isFinite(configuredTimeout) && configuredTimeout > 0 ? configuredTimeout :
|
|
250
|
+
const configuredTimeout = Number(process.env.MM_HARNESS_FIXTURES_SET_TIMEOUT_MS ?? MOBILE_SETUP_WALLET_TIMEOUT_MS);
|
|
251
|
+
const timeoutMs = Number.isFinite(configuredTimeout) && configuredTimeout > 0 ? configuredTimeout : MOBILE_SETUP_WALLET_TIMEOUT_MS;
|
|
251
252
|
if (!resetError) {
|
|
252
253
|
mobileSetupResult = await spawnScriptStreaming(
|
|
253
254
|
setupWalletSh,
|
|
@@ -421,10 +421,11 @@ async function handleLaunchLocked(argv, stream) {
|
|
|
421
421
|
const recoveryCode = restartMobileApp ? "mobile.app-restarted" : RECOVERY_CODE[adapter];
|
|
422
422
|
state.attemptedRecoveries.push(recoveryCode);
|
|
423
423
|
stream.phase("recover");
|
|
424
|
+
const recoveryTier = restartMobileApp && tier === "build" ? "quick" : tier;
|
|
424
425
|
attempt = await executeComposition(
|
|
425
426
|
adapter,
|
|
426
427
|
mobileTarget,
|
|
427
|
-
|
|
428
|
+
recoveryTier,
|
|
428
429
|
wantWatch,
|
|
429
430
|
target,
|
|
430
431
|
machine,
|