@deeeed/metamask-harness 0.92.3 → 0.92.5

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,19 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.92.5 - 2026-10-15
6
+
7
+ ### Fixed
8
+
9
+ - Include shared diff-scope review instructions in hosted task initialization through the coordinated shared runtime dependency set.
10
+ - Wait for observed wallet readiness after Mobile unlock, including when the login input disappears during startup.
11
+
12
+ ## 0.92.4 - 2026-10-15
13
+
14
+ ### Fixed
15
+
16
+ - Use shared Android recording segment rotation through adapter-rn 0.22.8 while keeping the coordinated native window screenshot engine.
17
+
5
18
  ## 0.92.3 - 2026-10-15
6
19
 
7
20
  ### Fixed
@@ -147,6 +147,7 @@ async function waitForStableUnlocked(
147
147
  initialStatus,
148
148
  stableMs = 750,
149
149
  recoveryTimeoutMs = 30000,
150
+ { waitThroughLogin = false } = {},
150
151
  ) {
151
152
  if (!isUnlockedStatus(initialStatus, input)) return null;
152
153
  if (stableMs <= 0) return initialStatus;
@@ -162,7 +163,7 @@ async function waitForStableUnlocked(
162
163
  try {
163
164
  last = await statusBeforeDeadline(input, deadline);
164
165
  if (!isUnlockedStatus(last, input)) {
165
- if (routeName(last, input) === 'Login') return null;
166
+ if (!waitThroughLogin && routeName(last, input) === 'Login') return null;
166
167
  stableSince = null;
167
168
  continue;
168
169
  }
@@ -239,24 +240,13 @@ export async function ensureUnlocked(input) {
239
240
  try {
240
241
  const current = await statusBeforeDeadline(input, unlockDeadline);
241
242
  if (isUnlockedStatus(current, input)) {
242
- return {
243
- action: input.action,
244
- unlocked: true,
245
- alreadyUnlocked: true,
246
- keyringUnlocked:
247
- selectedStatus(current, input)?.keyringUnlocked === true,
248
- account: selectedAccount(current, input),
249
- deviceName: selectedStatus(current, input)?.deviceName ?? null,
250
- platform: selectedStatus(current, input)?.platform ?? null,
251
- redacted: true,
252
- proofPath: 'agentic-wallet-status-after-missing-login-input',
253
- };
243
+ result = { ok: true, alreadyUnlocked: true };
254
244
  }
255
245
  } catch {
256
246
  // The bridge target can rotate while the login input mounts. Keep the
257
247
  // retry bounded by the same unlock deadline.
258
248
  }
259
- await new Promise((resolve) => setTimeout(resolve, 250));
249
+ if (result === undefined) await new Promise((resolve) => setTimeout(resolve, 250));
260
250
  }
261
251
  }
262
252
  if (result === undefined) {
@@ -272,6 +262,7 @@ export async function ensureUnlocked(input) {
272
262
  after,
273
263
  Number(input.node?.stable_unlocked_ms ?? 750),
274
264
  remainingStabilityMs,
265
+ { waitThroughLogin: true },
275
266
  );
276
267
  if (!stableAfter) {
277
268
  throw new Error('Mobile wallet did not remain unlocked for the required stability window.');
@@ -279,6 +270,7 @@ export async function ensureUnlocked(input) {
279
270
  return {
280
271
  action: input.action,
281
272
  unlocked: Boolean(result?.ok ?? result?.unlocked ?? true),
273
+ ...(result?.alreadyUnlocked ? { alreadyUnlocked: true } : {}),
282
274
  keyringUnlocked:
283
275
  selectedStatus(stableAfter, input)?.keyringUnlocked === true,
284
276
  account: selectedAccount(stableAfter, input),
@@ -286,7 +278,9 @@ export async function ensureUnlocked(input) {
286
278
  deviceName: selectedStatus(stableAfter, input)?.deviceName ?? null,
287
279
  platform: selectedStatus(stableAfter, input)?.platform ?? null,
288
280
  redacted: true,
289
- proofPath: 'agentic-wallet-unlock',
281
+ proofPath: result?.alreadyUnlocked
282
+ ? 'agentic-wallet-status-after-missing-login-input'
283
+ : 'agentic-wallet-unlock',
290
284
  };
291
285
  }
292
286
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deeeed/metamask-harness",
3
- "version": "0.92.3",
3
+ "version": "0.92.5",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "mm-harness": "bin/mm-harness"
@@ -21,15 +21,15 @@
21
21
  "check:syntax": "find . -name '*.mjs' -print0 | xargs -0 -n1 node --check"
22
22
  },
23
23
  "dependencies": {
24
- "@farmslot/adapter-node": "0.1.22",
25
- "@farmslot/adapter-rn": "0.22.7",
26
- "@farmslot/adapter-sdk": "0.13.3",
27
- "@farmslot/adapter-web": "0.10.0",
28
- "@farmslot/agent-runtime": "0.22.2",
24
+ "@farmslot/adapter-node": "0.1.23",
25
+ "@farmslot/adapter-rn": "0.22.9",
26
+ "@farmslot/adapter-sdk": "0.14.0",
27
+ "@farmslot/adapter-web": "0.10.1",
28
+ "@farmslot/agent-runtime": "0.22.4",
29
29
  "@farmslot/handoff": "^0.3.1",
30
- "@farmslot/protocol": "0.44.0",
31
- "@farmslot/recipe-cli": "0.17.5",
32
- "@farmslot/recipe-runner": "0.35.0",
30
+ "@farmslot/protocol": "0.45.0",
31
+ "@farmslot/recipe-cli": "0.18.0",
32
+ "@farmslot/recipe-runner": "0.36.0",
33
33
  "agent-device": "0.19.3",
34
34
  "commander": "^12.0.0",
35
35
  "esbuild": "0.28.1",