Skip to content

Commit 2081d56

Browse files
committed
Merge branch 'main' into perf/extract-useParticipantSubmission-hook
2 parents 25cf814 + a613428 commit 2081d56

221 files changed

Lines changed: 6750 additions & 3442 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/settings.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@
5252
"mcp__sentry__search_events",
5353
"mcp__sentry__search_issue_events",
5454
"mcp__sentry__search_issues",
55-
"mcp__sentry__whoami"
55+
"mcp__sentry__whoami",
56+
"Bash(agent-device *)",
57+
"Bash(echo \"$(npm root -g)/agent-device/skills/agent-device\")"
5658
]
5759
},
5860
"enabledPlugins": {
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
name: agent-device
3+
description: Drive iOS and Android devices for the Expensify App - testing, debugging, performance profiling, bug reproduction, and feature verification. Use when the developer needs to interact with the mobile app on a device.
4+
allowed-tools: Bash(agent-device *) Bash(npm root *)
5+
---
6+
7+
# agent-device
8+
9+
## Pre-flight
10+
11+
`agent-device` CLI version: !`agent-device --version 2>&1 || echo "NOT_INSTALLED"`
12+
13+
Canonical skill reference path (read these files directly for device automation guidance - bootstrap, exploration, verification, debugging): !`echo "$(npm root -g)/agent-device/skills/agent-device"`
14+
15+
> If the version line above shows `NOT_INSTALLED` or a command-not-found error, **STOP** and instruct the developer to install it: `npm install -g agent-device`. All device interaction depends on it.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,5 +162,8 @@ modules/*/lib/
162162
.playwright-output/
163163
.playwright-mcp/
164164

165+
# agent-device
166+
agent-device-output/
167+
165168
# cspell cache
166169
.cspellcache

CLAUDE.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,9 @@ npm run web
278278
### Browser Testing
279279
Use the `/playwright-app-testing` skill to test and debug the App in a browser. Use this skill after making frontend changes to verify your work, or when the user requests testing.
280280

281+
### Mobile Device Testing
282+
Use the `/agent-device` skill to drive the App on iOS and Android (simulators or real devices) for interactive testing, performance profiling, bug reproduction, and device-specific debugging. Requires `npm install -g agent-device` - the skill's pre-flight check will surface the install instruction if missing.
283+
281284
## Architecture Decisions
282285

283286
### React Native New Architecture

Mobile-Expensify

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ For detailed setup instructions for each platform, see the following guides:
4848
* **📱 iOS Development**: [iOS Setup Instructions](contributingGuides/SETUP_IOS.md)
4949
* **🤖 Android Development**: [Android Setup Instructions](contributingGuides/SETUP_ANDROID.md)
5050

51+
**Optional AI-assisted mobile testing:** If you use Claude Code, the [`/agent-device` skill](.claude/skills/agent-device/SKILL.md) drives iOS and Android simulators or devices for interactive testing, debugging, and performance profiling. Requires `npm install -g agent-device`.
52+
5153
## General Troubleshooting
5254
1. If you are having issues with **_Getting Started_**, please reference [React Native's Documentation](https://reactnative.dev/docs/environment-setup)
5355
2. If you are running into CORS errors like (in the browser dev console)

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ android {
111111
minSdkVersion rootProject.ext.minSdkVersion
112112
targetSdkVersion rootProject.ext.targetSdkVersion
113113
multiDexEnabled rootProject.ext.multiDexEnabled
114-
versionCode 1009036102
115-
versionName "9.3.61-2"
114+
versionCode 1009036104
115+
versionName "9.3.61-4"
116116
// Supported language variants must be declared here to avoid from being removed during the compilation.
117117
// This also helps us to not include unnecessary language variants in the APK.
118118
resConfigs "en", "es"
Lines changed: 1 addition & 0 deletions
Loading

contributingGuides/SETUP_ANDROID.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ If you haven't done any intentional edits outside of `src/` (like adding new dep
7373
- Changes applied to Javascript will be applied automatically, any changes to native code will require a recompile
7474

7575
### Expensify Employees
76-
If you are an Expensify employee and want to point the emulator to your local VM, follow [this](https://stackoverflow.com/c/expensify/questions/7699)
76+
- To point the **Development Emulator** at your local VM, follow [these steps](https://stackoverflow.com/c/expensify/questions/7699).
77+
- You must configure the local dev email account; follow [these instructions](https://stackoverflowteams.com/c/expensify/questions/23537/23538#23538).
7778

7879
## Enabling Prebuilt React Native Artifacts
7980

contributingGuides/SETUP_IOS.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ For an M1 Mac, read this [Stack Overflow post](https://stackoverflow.com/questio
8080
If you want to run the app on an actual physical iOS device, please follow the instructions [here](https://github.com/Expensify/App/blob/main/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md).
8181

8282
### Expensify Employees
83-
If you are an Expensify employee and want to point the emulator to your local VM, follow [this](https://stackoverflow.com/c/expensify/questions/7699)
83+
- To point the **Development Simulator** at your local VM, follow [these steps](https://stackoverflow.com/c/expensify/questions/7699).
84+
- You must configure the local dev email account; follow [these instructions](https://stackoverflowteams.com/c/expensify/questions/23537/23538#23538).
8485

8586
## Push Notifications Setup
8687

0 commit comments

Comments
 (0)