Skip to content

Commit 6a5d2df

Browse files
committed
Merge branch 'main' into war-in/bump-reanimated-421
2 parents e0ace3e + eb7deee commit 6a5d2df

600 files changed

Lines changed: 19181 additions & 4154 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 & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,8 @@
1919
"mcp__playwright__browser_evaluate",
2020
"mcp__playwright__browser_handle_dialog"
2121
]
22+
},
23+
"enabledPlugins": {
24+
"react-native-best-practices@callstack-agent-skills": true
2225
}
2326
}

.github/ISSUE_TEMPLATE/OnboardOffboardExpertContributor.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ labels: Daily, Task, Access Change
1111
- [ ] Add / remove from the following Slack channels via Slack Connect
1212
- [ ] [#quality](https://expensify.enterprise.slack.com/archives/C05LX9D6E07)
1313
- [ ] [#convert](https://expensify.enterprise.slack.com/archives/C07HPDRELLD)
14-
- [ ] [#retain](https://expensify.enterprise.slack.com/archives/C07NZ8B1VTQ)
1514
- [ ] [#migrate](https://expensify.enterprise.slack.com/archives/C07NMDKEFMH)
1615
- [ ] [#expensify-bugs](https://expensify.enterprise.slack.com/archives/C049HHMV9SM)
1716
- [ ] [#expensify-open-source](https://expensify.enterprise.slack.com/archives/C01GTK53T8Q)

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ jobs:
298298
needs: prep
299299
runs-on: macos-15-xlarge
300300
env:
301-
DEVELOPER_DIR: /Applications/Xcode_26.0.app/Contents/Developer
301+
DEVELOPER_DIR: /Applications/Xcode_26.2.app/Contents/Developer
302302
SHOULD_BUILD_APP: ${{ github.ref == 'refs/heads/staging' || fromJSON(needs.prep.outputs.IS_CHERRY_PICK) }}
303303
steps:
304304
- name: Checkout

.github/workflows/remote-build-ios.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
build:
2121
runs-on: ${{ github.repository_owner == 'Expensify' && 'macos-15-xlarge' || 'macos-15' }}
2222
env:
23-
DEVELOPER_DIR: /Applications/Xcode_26.0.app/Contents/Developer
23+
DEVELOPER_DIR: /Applications/Xcode_26.2.app/Contents/Developer
2424
strategy:
2525
fail-fast: false
2626
matrix:

.github/workflows/testBuild.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ jobs:
330330
if: ${{ inputs.IOS }}
331331
needs: [prep, getMobileExpensifyPR, getMobileExpensifyRef]
332332
env:
333-
DEVELOPER_DIR: /Applications/Xcode_26.0.app/Contents/Developer
333+
DEVELOPER_DIR: /Applications/Xcode_26.2.app/Contents/Developer
334334
PULL_REQUEST_NUMBER: ${{ needs.prep.outputs.APP_PR_NUMBER }}
335335
runs-on: macos-15-xlarge
336336
outputs:

.github/workflows/verifyHybridApp.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ jobs:
113113
name: Verify iOS HybridApp builds on main
114114
runs-on: macos-15-xlarge
115115
env:
116-
DEVELOPER_DIR: /Applications/Xcode_26.0.app/Contents/Developer
116+
DEVELOPER_DIR: /Applications/Xcode_26.2.app/Contents/Developer
117117
# Only run on pull requests that are *not* on a fork
118118
if: ${{ !github.event.pull_request.head.repo.fork && github.event_name == 'pull_request' }}
119119
steps:

CLAUDE.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,18 @@ Key GitHub Actions workflows:
172172

173173
## Development Practices
174174

175+
### React Native Best Practices
176+
Use the `/react-native-best-practices` skill when working on performance-sensitive code, native modules, or release preparation. This ensures code respects established best practices from the start, resulting in more consistent code, fewer review iterations, and better resilience against regressions.
177+
178+
The skill provides guidance on:
179+
- **Performance**: FPS optimization, virtualized lists (FlashList), memoization, atomic state, animations
180+
- **Bundle & App Size**: Barrel imports, tree shaking, bundle analysis, R8 shrinking
181+
- **Startup (TTI)**: Hermes bytecode optimization, native navigation, deferred work
182+
- **Native Modules**: Turbo Module development, threading model, Swift/Kotlin/C++ patterns
183+
- **Memory**: JS and native memory leak detection and patterns
184+
- **Build Compliance**: Android 16KB page alignment (Google Play requirement)
185+
- **Platform Tooling**: Xcode/Android Studio profiling and debugging setup
186+
175187
### Code Quality
176188
- **TypeScript**: Strict mode enabled
177189
- **ESLint**: Linter

Mobile-Expensify

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ android {
114114
minSdkVersion rootProject.ext.minSdkVersion
115115
targetSdkVersion rootProject.ext.targetSdkVersion
116116
multiDexEnabled rootProject.ext.multiDexEnabled
117-
versionCode 1009030901
118-
versionName "9.3.9-1"
117+
versionCode 1009031101
118+
versionName "9.3.11-1"
119119
// Supported language variants must be declared here to avoid from being removed during the compilation.
120120
// This also helps us to not include unnecessary language variants in the APK.
121121
resConfigs "en", "es"

android/app/src/main/java/com/expensify/chat/MainApplication.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class MainApplication : MultiDexApplication(), ReactApplication {
4242
add(NavBarManagerPackage())
4343
}
4444

45-
override fun getJSMainModuleName() = ".expo/.virtual-metro-entry"
45+
override fun getJSMainModuleName() = "index"
4646

4747
override val isNewArchEnabled: Boolean
4848
get() = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED

0 commit comments

Comments
 (0)