| author | |
| committer | |
| log | 9c524d57718e639a6abe0a5fa3cbf6e9b086df86 |
| tree | 227dd65520d0f7f7d7ab8722738b5d39f577d38f |
| parent | 8d7b5e998c72b4674326cbac7d23bafe9b222668 |
| signature | Signed by PGP key B5690EEEBB952194 |
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>4 files changed, 28 insertions(+), 9 deletions(-)
apps/mobile/src/features/showcase/stageShowcaseAgentActivity.ts+3| ... | @@ -25,6 +25,9 @@ export async function stageShowcaseAgentActivity( | ... | @@ -25,6 +25,9 @@ export async function stageShowcaseAgentActivity( |
| 25 | ios: { allowAlert: true, allowBadge: true, allowSound: true }, | 25 | ios: { allowAlert: true, allowBadge: true, allowSound: true }, |
| 26 | }); | 26 | }); |
| 27 | if (!permission.granted) return `notification permission ${permission.status}`; | 27 | if (!permission.granted) return `notification permission ${permission.status}`; |
| 28 | // A previous appearance's pass left its alert delivered; it would stack | ||
| 29 | // under the new one. | ||
| 30 | await Notifications.dismissAllNotificationsAsync(); | ||
| 28 | 31 | ||
| 29 | if (Platform.OS === "android") { | 32 | if (Platform.OS === "android") { |
| 30 | return ( | 33 | return ( |
docs/operations/mobile-app-store-screenshots.md+8-8| ... | @@ -63,14 +63,14 @@ multiplies the run by six; only the native build is shared. | ... | @@ -63,14 +63,14 @@ multiplies the run by six; only the native build is shared. |
| 63 | 63 | ||
| 64 | The default matrix is: | 64 | The default matrix is: |
| 65 | 65 | ||
| 66 | | Output folder | Capture target | Upload dimensions | Store slot | | 66 | | Output folder | Capture target | Upload dimensions | Store slot | |
| 67 | | ------------------------------------- | ------------------------- | ----------------- | ----------------------------------------- | | 67 | | ------------------------------------- | ---------------------------- | ----------------- | ----------------------------------------- | |
| 68 | | `apple/iphone-6.9/dark/t3-code/` | iPhone 17 Pro Max | 1320×2868 | App Store Connect iPhone 6.9-inch | | 68 | | `apple/iphone-6.9/dark/t3-code/` | disposable iPhone 17 Pro Max | 1320×2868 | App Store Connect iPhone 6.9-inch | |
| 69 | | `apple/iphone-6.5/dark/t3-code/` | disposable iPhone 14 Plus | 1284×2778 | App Store Connect iPhone 6.5-inch | | 69 | | `apple/iphone-6.5/dark/t3-code/` | disposable iPhone 14 Plus | 1284×2778 | App Store Connect iPhone 6.5-inch | |
| 70 | | `apple/ipad-13/dark/t3-code/` | iPad Pro 13-inch (M5) | 2752×2064 | App Store Connect iPad 13-inch, landscape | | 70 | | `apple/ipad-13/dark/t3-code/` | iPad Pro 13-inch (M5) | 2752×2064 | App Store Connect iPad 13-inch, landscape | |
| 71 | | `google-play/phone/dark/t3-code/` | Pixel AVD at 420 dpi | 1080×1920 | Google Play phone, portrait 9:16 | | 71 | | `google-play/phone/dark/t3-code/` | Pixel AVD at 420 dpi | 1080×1920 | Google Play phone, portrait 9:16 | |
| 72 | | `google-play/tablet-7/dark/t3-code/` | Pixel AVD at 600dp width | 1080×1920 | Google Play 7-inch tablet, portrait 9:16 | | 72 | | `google-play/tablet-7/dark/t3-code/` | Pixel AVD at 600dp width | 1080×1920 | Google Play 7-inch tablet, portrait 9:16 | |
| 73 | | `google-play/tablet-10/dark/t3-code/` | Pixel AVD at 800dp width | 1440×2560 | Google Play 10-inch tablet, portrait 9:16 | | 73 | | `google-play/tablet-10/dark/t3-code/` | Pixel AVD at 800dp width | 1440×2560 | Google Play 10-inch tablet, portrait 9:16 | |
| 74 | 74 | ||
| 75 | Each target captures thread, terminal, review, thread list, and environments, and every target but | 75 | Each target captures thread, terminal, review, thread list, and environments, and every target but |
| 76 | the iPad also captures agent activity. Each palette folder's five or six screenshots satisfy the configured Apple limit of 1–10, Google | 76 | the iPad also captures agent activity. Each palette folder's five or six screenshots satisfy the configured Apple limit of 1–10, Google |
scripts/mobile-showcase.config.ts+3-1| ... | @@ -104,7 +104,9 @@ const config: ShowcaseConfig = { | ... | @@ -104,7 +104,9 @@ const config: ShowcaseConfig = { |
| 104 | { | 104 | { |
| 105 | id: "iphone-6.9", | 105 | id: "iphone-6.9", |
| 106 | platform: "ios", | 106 | platform: "ios", |
| 107 | simulator: "iPhone 17 Pro Max", | 107 | // A disposable device lands on the newest runtime, whose default lock |
| 108 | // screen wallpaper suits both appearances; a stock one may be older. | ||
| 109 | simulator: "T3 Showcase iPhone 17 Pro Max", | ||
| 108 | simulatorDeviceType: "com.apple.CoreSimulator.SimDeviceType.iPhone-17-Pro-Max", | 110 | simulatorDeviceType: "com.apple.CoreSimulator.SimDeviceType.iPhone-17-Pro-Max", |
| 109 | appearance: "dark", | 111 | appearance: "dark", |
| 110 | theme: DEFAULT_SHOWCASE_THEME, | 112 | theme: DEFAULT_SHOWCASE_THEME, |
scripts/mobile-showcase.ts+14| ... | @@ -838,6 +838,20 @@ async function suppressIosSystemFollowUps(udid: string): Promise<void> { | ... | @@ -838,6 +838,20 @@ async function suppressIosSystemFollowUps(udid: string): Promise<void> { |
| 838 | 838 | ||
| 839 | async function normalizeIosSimulator(appearance: ShowcaseAppearance, udid: string): Promise<void> { | 839 | async function normalizeIosSimulator(appearance: ShowcaseAppearance, udid: string): Promise<void> { |
| 840 | await runCommand("xcrun", ["simctl", "ui", udid, "appearance", appearance]); | 840 | await runCommand("xcrun", ["simctl", "ui", udid, "appearance", appearance]); |
| 841 | // Always-on displays (Pro Max) dim a locked screen instead of turning it | ||
| 842 | // off, which the lock-screen wake cannot tell from a lit one. Without it the | ||
| 843 | // locked display goes dark and the wake lights it fully. | ||
| 844 | await runCommand("xcrun", [ | ||
| 845 | "simctl", | ||
| 846 | "spawn", | ||
| 847 | udid, | ||
| 848 | "defaults", | ||
| 849 | "write", | ||
| 850 | "com.apple.springboard", | ||
| 851 | "SBEnableAlwaysOn", | ||
| 852 | "-bool", | ||
| 853 | "false", | ||
| 854 | ]); | ||
| 841 | await runCommand("xcrun", [ | 855 | await runCommand("xcrun", [ |
| 842 | "simctl", | 856 | "simctl", |
| 843 | "status_bar", | 857 | "status_bar", |