Skip to content

Commit 3c28125

Browse files
Merge remote-tracking branch 'upstream/main' into perf/remove-draft-transactions-collection-subscriptions
2 parents aff7b12 + e4c8216 commit 3c28125

485 files changed

Lines changed: 11973 additions & 5584 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/commands/review-code-pr.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
allowed-tools: Bash(gh pr diff:*),Bash(gh pr view:*)
2+
allowed-tools: Bash(gh pr diff:*),Bash(gh pr view:*),Bash(check-compiler.sh:*)
33
description: Review a code contribution pull request
44
---
55

.claude/scripts/check-compiler.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/bash
2+
3+
# Secure proxy script to run React Compiler compliance check on a single file.
4+
# Validates the filepath before passing it to the underlying npm script.
5+
set -eu
6+
7+
if [[ $# -lt 1 ]]; then
8+
echo "Usage: $0 <filepath>" >&2
9+
exit 1
10+
fi
11+
12+
readonly FILEPATH="$1"
13+
14+
# Strict filepath validation - reject shell metacharacters
15+
if ! [[ "$FILEPATH" =~ ^[a-zA-Z0-9_./@-]+$ ]]; then
16+
echo "Error: Invalid filepath (contains disallowed characters)" >&2
17+
exit 1
18+
fi
19+
20+
npm run react-compiler-compliance-check -- check "$FILEPATH"

.claude/skills/coding-standards/rules/clean-react-0-compiler.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ function Avatar({source, size}: AvatarProps) {
9898
Before flagging, verify that the file actually compiles with React Compiler:
9999

100100
```bash
101-
npx react-compiler-healthcheck --src "<filepath>" --verbose
101+
check-compiler.sh <filepath>
102102
```
103103

104104
If the output contains **"Failed to compile"** for the file under review, the rule **does not apply** — the author may have no alternative to manual memoization until the compilation issue is resolved.

.github/workflows/cherryPick.yml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,79 @@ jobs:
211211
git push origin ${{ inputs.TARGET }}
212212
fi
213213
214+
- name: Find deploy workflow run
215+
# Also runs for version-bump-only CPs where HAS_CONFLICTS is unset
216+
if: ${{ steps.cherryPick.outputs.HAS_CONFLICTS != 'true' }}
217+
id: findDeployRun
218+
run: |
219+
PUSH_SHA=$(git rev-parse HEAD)
220+
echo "Push SHA: $PUSH_SHA"
221+
222+
DEPLOY_RUN_URL=""
223+
for i in 1 2 3 4 5 6; do
224+
echo "Polling for deploy run (attempt $i)..."
225+
sleep 10
226+
DEPLOY_RUN_URL=$(gh api \
227+
"repos/${{ github.repository }}/actions/workflows/deploy.yml/runs?head_sha=$PUSH_SHA&per_page=1" \
228+
--jq '.workflow_runs[0].html_url // empty' 2>/dev/null || true)
229+
if [ -n "$DEPLOY_RUN_URL" ]; then
230+
echo "Found deploy run: $DEPLOY_RUN_URL"
231+
break
232+
fi
233+
done
234+
235+
FALLBACK_URL="https://github.com/${{ github.repository }}/actions/workflows/deploy.yml"
236+
if [ -z "$DEPLOY_RUN_URL" ]; then
237+
echo "::warning::Could not find deploy workflow run for SHA $PUSH_SHA"
238+
{
239+
echo "DEPLOY_RUN_FOUND=false"
240+
echo "DEPLOY_RUN_URL=$FALLBACK_URL"
241+
echo "DEPLOY_RUN_MESSAGE=⚠️ Could not locate deploy run — check $FALLBACK_URL"
242+
} >> "$GITHUB_OUTPUT"
243+
else
244+
{
245+
echo "DEPLOY_RUN_FOUND=true"
246+
echo "DEPLOY_RUN_URL=$DEPLOY_RUN_URL"
247+
echo "DEPLOY_RUN_MESSAGE=$DEPLOY_RUN_URL"
248+
} >> "$GITHUB_OUTPUT"
249+
fi
250+
env:
251+
GITHUB_TOKEN: ${{ github.token }}
252+
253+
- name: Announce successful CP in #deployer
254+
# Also runs for version-bump-only CPs where HAS_CONFLICTS is unset
255+
if: ${{ steps.cherryPick.outputs.HAS_CONFLICTS != 'true' }}
256+
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e
257+
with:
258+
status: custom
259+
custom_payload: |
260+
{
261+
channel: '#deployer',
262+
attachments: [{
263+
color: 'good',
264+
text: `🍒 Cherry-pick to *${{ inputs.TARGET }}* successful\nPR: ${{ inputs.PULL_REQUEST_URL || '(version bump only)' }}\nDeploy workflow: ${{ steps.findDeployRun.outputs.DEPLOY_RUN_MESSAGE }}`
265+
}]
266+
}
267+
env:
268+
GITHUB_TOKEN: ${{ github.token }}
269+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
270+
271+
- name: Write workflow summary
272+
# Also runs for version-bump-only CPs where HAS_CONFLICTS is unset
273+
if: ${{ steps.cherryPick.outputs.HAS_CONFLICTS != 'true' }}
274+
run: |
275+
{
276+
echo "## Cherry-pick successful"
277+
echo ""
278+
echo "**Target:** \`${{ inputs.TARGET }}\`"
279+
echo "**PR:** ${{ inputs.PULL_REQUEST_URL || 'N/A (version bump only)' }}"
280+
if [[ "${{ steps.findDeployRun.outputs.DEPLOY_RUN_FOUND }}" == "true" ]]; then
281+
echo "**Deploy workflow:** ${{ steps.findDeployRun.outputs.DEPLOY_RUN_URL }}"
282+
else
283+
echo "**Deploy workflow:** :warning: Could not locate deploy run — check [${{ inputs.TARGET }} deploy runs](${{ steps.findDeployRun.outputs.DEPLOY_RUN_URL }})"
284+
fi
285+
} >> "$GITHUB_STEP_SUMMARY"
286+
214287
- name: Create Pull Request to manually finish CP
215288
if: steps.cherryPick.outputs.HAS_CONFLICTS == 'true'
216289
id: createPullRequest

.github/workflows/claude-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ jobs:
7474
prompt: "/review-code-pr REPO: ${{ github.repository }} PR_NUMBER: ${{ github.event.pull_request.number }}"
7575
claude_args: |
7676
--model claude-opus-4-6
77-
--allowedTools "Task,Glob,Grep,Read,Bash(gh pr diff:*),Bash(gh pr view:*)" --json-schema '${{ steps.schema.outputs.json }}'
77+
--allowedTools "Task,Glob,Grep,Read,Bash(gh pr diff:*),Bash(gh pr view:*),Bash(check-compiler.sh:*)" --json-schema '${{ steps.schema.outputs.json }}'
7878
7979
- name: Post code review results
8080
if: steps.code-review.outcome == 'success' && steps.filter.outputs.code == 'true'

Mobile-Expensify

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 1009033710
115-
versionName "9.3.37-10"
114+
versionCode 1009033903
115+
versionName "9.3.39-3"
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"

assets/images/car-plus.svg

Lines changed: 1 addition & 0 deletions
Loading

assets/images/document-plus.svg

Lines changed: 1 addition & 0 deletions
Loading

assets/images/envelope-open-star.svg

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)