Skip to content

Commit 9db3401

Browse files
chore(mobile): e2e runner on agent-device 0.21.32, side-rail aware tab checks
agent-device 0.21.32 folds the iPhone Duo in Simlock's device set. The folded Duo keeps its side rail inside a thread, so the hide-on-push tab checks only apply to bottom tab bars. The Duo poses stay pending: alert accept cannot see the open-link prompt on the Duo. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 7c3b3b3 commit 9db3401

5 files changed

Lines changed: 27 additions & 25 deletions

File tree

‎pnpm-lock.yaml‎

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎pnpm-workspace.yaml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ minimumReleaseAgeExclude:
224224
- "@pierre/diffs@1.6.1"
225225
- "@pierre/highlights@0.2.0"
226226
- "@pierre/theming@1.0.2"
227+
- agent-device@0.21.32
227228

228229
overrides:
229230
# Pin every patched package, including transitive dependencies, so lockfile-free

‎scripts/mobile-e2e/journey.ts‎

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,8 @@ export async function runJourney(
140140
await delay(1_000);
141141
threads = await device.orient(device.pose.landscape ? "landscape" : "portrait");
142142
const tabs = tabBarRect(threads);
143+
// A bottom tab bar gives way to a pushed thread; the folded Duo's side rail stays put.
144+
const bottomTabs = phone && tabs && tabs.width > tabs.height ? tabs : undefined;
143145
const wide = threads.viewport.width > threads.viewport.height;
144146
await capture("threads", threads, [
145147
check(
@@ -160,19 +162,18 @@ export async function runJourney(
160162
);
161163
const threadShot = NodePath.join(directory, `${steps.length + 1}-thread.png`);
162164
await device.screenshot(threadShot);
163-
const openLag =
164-
phone && tabs
165-
? await lagCheck(
166-
"no tabs over the entering thread (video)",
167-
{
168-
video: opening,
169-
nav: topBand(threads),
170-
chrome: tabs,
171-
viewportWidth: threads.viewport.width,
172-
},
173-
NodePath.join(directory, "open-thread-lag.png"),
174-
)
175-
: null;
165+
const openLag = bottomTabs
166+
? await lagCheck(
167+
"no tabs over the entering thread (video)",
168+
{
169+
video: opening,
170+
nav: topBand(threads),
171+
chrome: bottomTabs,
172+
viewportWidth: threads.viewport.width,
173+
},
174+
NodePath.join(directory, "open-thread-lag.png"),
175+
)
176+
: null;
176177
steps.push({
177178
name: "thread",
178179
screenshot: threadShot,
@@ -185,9 +186,9 @@ export async function runJourney(
185186
inside(composer(thread)?.rect, thread),
186187
describeRect(composer(thread)?.rect),
187188
),
188-
...(phone
189+
...(phone ? [check("back button visible", backButton(thread) !== undefined, "back")] : []),
190+
...(bottomTabs
189191
? [
190-
check("back button visible", backButton(thread) !== undefined, "back"),
191192
check(
192193
"tab bar hidden",
193194
tabBarRect(thread) === undefined,
@@ -238,13 +239,13 @@ export async function runJourney(
238239
);
239240
const listShot = NodePath.join(directory, `${steps.length + 1}-back.png`);
240241
await device.screenshot(listShot);
241-
const backLag = tabs
242+
const backLag = bottomTabs
242243
? await lagCheck(
243244
"tabs return with the list (video)",
244245
{
245246
video: back,
246247
nav: topBand(list),
247-
chrome: tabs,
248+
chrome: bottomTabs,
248249
viewportWidth: list.viewport.width,
249250
},
250251
NodePath.join(directory, "back-lag.png"),

‎scripts/mobile-e2e/poses.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export const POSES: ReadonlyArray<Pose> = [
3838
appearance: "light",
3939
fold: "closed",
4040
pending:
41-
"agent-device fold refuses simulators outside the default device set, which Simlock uses",
41+
"agent-device alert accept cannot see the iOS open-link prompt on the iPhone Duo, so the app never launches",
4242
}),
4343
pose({
4444
id: "iphone-duo-unfolded",
@@ -48,7 +48,7 @@ export const POSES: ReadonlyArray<Pose> = [
4848
appearance: "dark",
4949
fold: "open",
5050
pending:
51-
"agent-device fold refuses simulators outside the default device set, which Simlock uses",
51+
"agent-device alert accept cannot see the iOS open-link prompt on the iPhone Duo, so the app never launches",
5252
}),
5353
pose({
5454
id: "ipad-13-portrait",

‎scripts/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"@electron/osx-sign": "2.7.0",
1313
"@t3tools/shared": "workspace:*",
1414
"@t3tools/tailscale": "workspace:*",
15-
"agent-device": "0.21.31",
15+
"agent-device": "0.21.32",
1616
"effect": "catalog:",
1717
"plist": "catalog:",
1818
"pngjs": "7.0.0",

0 commit comments

Comments
 (0)