Skip to content

Commit b8eba8f

Browse files
committed
Merge branch 'main' into fix/72889
2 parents a042522 + 127f8cc commit b8eba8f

File tree

287 files changed

+5291
-3713
lines changed

Some content is hidden

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

287 files changed

+5291
-3713
lines changed

.claude/agents/code-inline-reviewer.md

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -248,17 +248,17 @@ const {amountColumnSize, dateColumnSize, taxAmountColumnSize} = useMemo(() => {
248248
- `body`: Concise and actionable description of the violation and fix, following the below Comment Format
249249
6. **Each comment must reference exactly one Rule ID.**
250250
7. **Output must consist exclusively of calls to mcp__github_inline_comment__create_inline_comment in the required format.** No other text, Markdown, or prose is allowed.
251-
8. **If no violations are found, create a comment** (with no quotes, markdown, or additional text):
252-
LGTM 👍 Thank you for your hard work!
253-
9. **Output LGTM if and only if**:
251+
8. **If no violations are found, add a reaction to the PR**:
252+
Add a 👍 (+1) reaction to the PR body using the `.github/scripts/addPrReaction.sh` script.
253+
9. **Add reaction if and only if**:
254254
- You examined EVERY changed line in EVERY changed file (via diff + targeted grep/read)
255255
- You checked EVERY changed file against ALL rules
256256
- You found ZERO violations matching the exact rule criteria
257257
- You verified no false negatives by checking each rule systematically
258-
If you found even ONE violation or have ANY uncertainty do NOT create LGTM comment - create inline comments instead.
258+
If you found even ONE violation or have ANY uncertainty do NOT add the reaction - create inline comments instead.
259259
10. **DO NOT invent new rules, stylistic preferences, or commentary outside the listed rules.**
260260
11. **DO NOT describe what you are doing, create comments with a summary, explanations, extra content, comments on rules that are NOT violated or ANYTHING ELSE.**
261-
Only inline comments regarding rules violations or general comment with LGTM message are allowed.
261+
Only inline comments regarding rules violations are allowed. If no violations are found, add a reaction instead of creating any comment.
262262
EXCEPTION: If you believe something MIGHT be a Rule violation but are uncertain, err on the side of creating an inline comment with your concern rather than skipping it.
263263

264264
## Tool Usage Example
@@ -273,22 +273,13 @@ mcp__github_inline_comment__create_inline_comment:
273273
body: '<Body of the comment according to the Comment Format>'
274274
```
275275

276-
If ZERO violations are found, use the Bash tool to create a top-level PR comment.:
276+
If ZERO violations are found, use the Bash tool to add a reaction to the PR body:
277277

278278
```bash
279-
gh pr comment --body 'LGTM :feelsgood:. Thank you for your hard work!'
279+
.github/scripts/addPrReaction.sh <PR_NUMBER>
280280
```
281281

282-
**IMPORTANT**: When using the Bash tool, always use **single quotes** (not double quotes) around content arguments.
283-
284-
Example:
285-
```bash
286-
# Good
287-
gh pr comment --body 'Use `useMemo` to optimize performance'
288-
289-
# Bad
290-
gh pr comment --body "Use `useMemo` to optimize performance"
291-
```
282+
**IMPORTANT**: Always use the `.github/scripts/addPrReaction.sh` script instead of calling `gh api` directly. This script provides a secure, restricted interface that only allows adding +1 reactions to PRs, preventing arbitrary GitHub API calls.
292283

293284
## Comment Format
294285

.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 comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),mcp__github_inline_comment__create_inline_comment
2+
allowed-tools: Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(.github/scripts/addPrReaction.sh:*),mcp__github_inline_comment__create_inline_comment
33
description: Review a code contribution pull request
44
---
55

.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,5 @@ FB_PROJECT_ID=YOUR_PROJECT_ID
4040

4141
GITHUB_TOKEN=YOUR_TOKEN
4242
OPENAI_API_KEY=YOUR_TOKEN
43+
44+
SENTRY_AUTH_TOKEN=SENTRY_AUTH_TOKEN

.github/CODEOWNERS

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
# Every PR gets a review from an internal Expensify engineer
22
* @Expensify/pullerbear
33

4+
# PRs that touch the front end source code, get an additional review from the product-pr team
5+
src/ @Expensify/product-pr @Expensify/pullerbear
6+
47
# PRs that touch the front end style or assets, get an additional review from the Design team
5-
src/styles/ @Expensify/design @Expensify/pullerbear
6-
assets/ @Expensify/design @Expensify/pullerbear
8+
src/styles/ @Expensify/design @Expensify/product-pr @Expensify/pullerbear
9+
assets/ @Expensify/design @Expensify/product-pr @Expensify/pullerbear
710

811
# Philosophy docs are in their early stages and need to be reviewed by Tim to ensure they have consistent formatting and organization
912
contributingGuides/philosophies/ @tgolen

.github/scripts/addPrReaction.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/bin/bash
2+
3+
# Secure proxy script to add a +1 reaction to a GitHub PR
4+
set -eu
5+
6+
if [[ $# -lt 1 ]] || ! [[ "$1" =~ ^[0-9]+$ ]]; then
7+
echo "Usage: $0 <PR_NUMBER>" >&2
8+
exit 1
9+
fi
10+
11+
PR_NUMBER="$1"
12+
REPO="${GITHUB_REPOSITORY}"
13+
14+
gh api -X POST "/repos/$REPO/issues/$PR_NUMBER/reactions" -f content="+1"
15+
16+

.github/workflows/claude-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
allowed_non_write_users: "*"
5252
prompt: "/review-code-pr REPO: ${{ github.repository }} PR_NUMBER: ${{ github.event.pull_request.number }}"
5353
claude_args: |
54-
--allowedTools "Task,Glob,Grep,Read,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),mcp__github_inline_comment__create_inline_comment"
54+
--allowedTools "Task,Glob,Grep,Read,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(.github/scripts/addPrReaction.sh:*),mcp__github_inline_comment__create_inline_comment"
5555
5656
- name: Run Claude Code (docs)
5757
if: steps.filter.outputs.docs == 'true'

.github/workflows/react-compiler-compliance.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
pull_request:
66
types: [opened, synchronize]
77
branches-ignore: [staging, production]
8-
paths: ['**.tsx']
8+
paths: ["**.tsx"]
99

1010
concurrency:
1111
group: ${{ github.ref == 'refs/heads/main' && format('{0}-{1}', github.ref, github.sha) || github.ref }}-react-compiler-compliance
@@ -25,7 +25,10 @@ jobs:
2525
uses: ./.github/actions/composite/setupNode
2626

2727
- name: Run React Compiler Compliance Check
28-
run: npm run react-compiler-compliance-check check-changed
28+
# In phase 0 of the React Compiler compliance check rollout,
29+
# we want to report failures but don't fail the check.
30+
# See https://github.com/Expensify/App/issues/68765#issuecomment-3487317881
31+
run: npm run react-compiler-compliance-check check-changed || true
2932
env:
3033
CI: true
3134
GITHUB_TOKEN: ${{ github.token }}

.github/workflows/reassurePerformanceTests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99
jobs:
1010
perf-tests:
1111
if: ${{ github.actor != 'OSBotify' }}
12-
runs-on: ubuntu-24.04-v4
12+
runs-on: ubuntu-latest
1313
steps:
1414
- name: Checkout
1515
# v4

.github/workflows/testBuild.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ jobs:
227227
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
228228
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
229229
GCP_GEOLOCATION_API_KEY: ${{ secrets.GCP_GEOLOCATION_API_KEY_STAGING }}
230+
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
230231

231232
web:
232233
name: Build and deploy Web
@@ -463,6 +464,8 @@ jobs:
463464
464465
- name: Build AdHoc app
465466
run: bundle exec fastlane ios build_adhoc_hybrid
467+
env:
468+
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
466469

467470
- name: Configure AWS Credentials
468471
# v4

Gemfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -172,10 +172,10 @@ GEM
172172
google-apis-firebaseappdistribution_v1alpha (~> 0.2.0)
173173
fastlane-sirp (1.0.0)
174174
sysrandom (~> 1.0)
175-
ffi (1.17.0)
176-
ffi (1.17.0-arm64-darwin)
177-
ffi (1.17.0-x86_64-darwin)
178-
ffi (1.17.0-x86_64-linux)
175+
ffi (1.17.2)
176+
ffi (1.17.2-arm64-darwin)
177+
ffi (1.17.2-x86_64-darwin)
178+
ffi (1.17.2-x86_64-linux-gnu)
179179
fourflusher (2.3.1)
180180
fuzzy_match (2.0.4)
181181
gh_inspector (1.1.3)

0 commit comments

Comments
 (0)