Skip to content

Commit e16cb44

Browse files
committed
gMerge branch 'main' into fix/76909-2
2 parents 2df0fa3 + 450dac4 commit e16cb44

721 files changed

Lines changed: 28537 additions & 5124 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/generateTranslations.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ jobs:
141141
EOF
142142
)"
143143
readonly PARROT_FOOTER
144+
readonly WORKFLOW_RUN_LINK="[View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})"
144145
145146
if [ "$PATCH_SIZE" -le "$MAX_COMMENT_SIZE" ]; then
146147
# Small diff - include in comment
@@ -159,6 +160,8 @@ jobs:
159160
echo '</details>'
160161
echo
161162
echo "$PARROT_FOOTER 😉"
163+
echo
164+
echo "${WORKFLOW_RUN_LINK}"
162165
} > "$TEMP_COMMENT_FILE"
163166
else
164167
# Large diff - upload as gist and link
@@ -176,6 +179,8 @@ jobs:
176179
echo "📋 **[View the translation diff here](${GIST_URL})** 📋"
177180
echo
178181
echo "$PARROT_FOOTER_WITH_CMD 😉"
182+
echo
183+
echo "${WORKFLOW_RUN_LINK}"
179184
} > "$TEMP_COMMENT_FILE"
180185
fi
181186

.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 1009031115
118+
versionName "9.3.11-15"
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"

0 commit comments

Comments
 (0)