Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3922 commits
Select commit Hold shift + click to select a range
db3dedd
address review: apply same perf fix to DebugReportActions and fix tes…
TMisiukiewicz Apr 22, 2026
c3b7b5c
Merge branch 'Expensify:main' into onyx/session-6
parasharrajat Apr 22, 2026
cf8f577
test: wrap IOURequestEditReportCommon test in NavigationContainer
KJ21-ENG Apr 22, 2026
5f05f5e
Merge branch 'main' of github.com:Expensify/App into onyx/session-4
parasharrajat Apr 22, 2026
f90f35b
Merge pull request #87041 from paulnjs/paulnjs-fix/80486-part-2
Valforte Apr 22, 2026
6858d23
Merge pull request #88485 from Expensify/rory-rc-company-card-details
Valforte Apr 22, 2026
f686a11
Merge pull request #86517 from software-mansion-labs/jakubstec/remove…
Valforte Apr 22, 2026
01ecd17
Merge pull request #87728 from Krishna2323/krishna2323/issue/86683
Valforte Apr 22, 2026
89b7c94
Merge pull request #88325 from Pujan92/fix/88147
Valforte Apr 22, 2026
b1eae81
Clean up MoneyRequestParticipantsSelector data ownership
OlimpiaZurek Apr 22, 2026
a4d4fe8
Merge branch 'main' into perf/MoneyRequestParticipantsSelector-decomp…
OlimpiaZurek Apr 22, 2026
63c4076
Merge pull request #88205 from Expensify/claude-hideEmptyCustomFieldC…
Valforte Apr 22, 2026
c77ed49
Merge pull request #87690 from nabi-ebrahimi/fix/offline-business-ba-…
Valforte Apr 22, 2026
3d58c9d
Revert "fix: show inline member row error when workspace role update …
JS00001 Apr 22, 2026
1984eca
Merge branch 'main' into jakubkalinski0/Odometer_blob_url_loss_detection
jakubkalinski0 Apr 22, 2026
e2d048b
Merge pull request #88531 from Expensify/revert-87994-fix/workspace-m…
amyevans Apr 22, 2026
5b64ac0
fix: pass backToReport instead of action to useRestartOnOdometerImage…
jakubkalinski0 Apr 22, 2026
048c7cb
fix: pass backToReport instead of action to useRestartOnOdometerImage…
jakubkalinski0 Apr 22, 2026
095f724
Merge pull request #88417 from software-mansion-labs/@OlGierd03/perf-…
rlinoz Apr 22, 2026
ae001d4
chore: prettier run
jakubkalinski0 Apr 22, 2026
0380b8b
Merge branch 'main' into VickyStash/bugfix/88238-fix-new-message-indi…
VickyStash Apr 22, 2026
c2b4c2b
Revert "[cp staging] Revert "fix: show inline member row error when w…
JS00001 Apr 22, 2026
32ddfcc
refactor: rename MfaError/MfaResult to MFAError/MFAResult for consist…
dariusz-biela Apr 22, 2026
4687a71
address comment
OlimpiaZurek Apr 22, 2026
627eb88
Merge pull request #87238 from nabi-ebrahimi/fix/report-total-greyout…
iwiznia Apr 22, 2026
1deb5d8
refactor: replace MFAError companion object with plain factory functions
dariusz-biela Apr 22, 2026
0563bbd
Merge branch 'Expensify:main' into knip-audit-export-1
shubham1206agra Apr 22, 2026
76f633f
Merge pull request #88533 from Expensify/revert-88531-revert-87994-fi…
JS00001 Apr 22, 2026
369ce44
Merge branch 'main' into knip-audit-export-5
shubham1206agra Apr 22, 2026
4707963
Simplify the check
VickyStash Apr 22, 2026
977b90e
Merge branch 'main' into knip-audit-export-4
shubham1206agra Apr 22, 2026
cd5dec9
Merge branch 'Expensify:main' into knip-audit-export-6
shubham1206agra Apr 22, 2026
43f2776
Match HR section width to Accounting
ShridharGoel Apr 22, 2026
418d815
fix types
JS00001 Apr 22, 2026
c543ce2
refactor: replace mapLibraryErrorToReason with decodeLibraryError tha…
dariusz-biela Apr 22, 2026
f26c7f6
Merge remote-tracking branch 'upstream/main' into gusto1.5
ShridharGoel Apr 22, 2026
885f601
Merge pull request #88537 from Expensify/jsenyitko-main-type
JS00001 Apr 22, 2026
ca0f1ca
fix: preserve effect cleanup for async pre-flight in OdometerReceiptS…
jakubkalinski0 Apr 22, 2026
54f9665
Merge branch 'main' into VickyStash/bugfix/88238-fix-new-message-indi…
VickyStash Apr 22, 2026
a63c292
refactor: rename comment from 'Client-side errors' to 'Local errors' …
dariusz-biela Apr 22, 2026
73714bf
refactor: remove ErrorState type alias, use MFAError directly
dariusz-biela Apr 22, 2026
705830c
Merge pull request #88163 from Expensify/onboarding-improvements
grgia Apr 22, 2026
23e3b4c
Address PR review comments
sharabai Apr 22, 2026
e9e52c2
Merge remote-tracking branch 'origin/main' into fix/newChatPage/dataP…
sharabai Apr 22, 2026
46294cd
Fix spelling
sharabai Apr 22, 2026
3a9ebb8
fix chatAttachment width/height
mrejdak Apr 22, 2026
5ec9d04
Fix lint
shubham1206agra Apr 22, 2026
2a8ad71
Merge branch 'Expensify:main' into knip-audit-export-1
shubham1206agra Apr 22, 2026
5013961
Merge branch 'Expensify:main' into knip-audit-export-4
shubham1206agra Apr 22, 2026
0236638
Merge branch 'Expensify:main' into knip-audit-export-6
shubham1206agra Apr 22, 2026
e3c8528
Merge branch 'Expensify:main' into knip-audit-export-5
shubham1206agra Apr 22, 2026
b734f33
Merge pull request #88430 from callstack-internal/perf/MoneyRequestPa…
Julesssss Apr 22, 2026
9bf15b2
Merge branch 'main' of https://github.com/Expensify/App into gusto1.5
ShridharGoel Apr 22, 2026
21ce298
Merge pull request #87269 from software-mansion-labs/jakubkalinski0/O…
Julesssss Apr 22, 2026
7339429
Merge pull request #88283 from shubham1206agra/knip-audit-export-4
Julesssss Apr 22, 2026
63204ef
Merge pull request #88284 from shubham1206agra/knip-audit-export-5
Julesssss Apr 22, 2026
affa37f
Merge pull request #88203 from callstack-internal/VickyStash/bugfix/8…
Julesssss Apr 22, 2026
5a2d4dd
Merge pull request #87959 from callstack-internal/perf/extract-useRes…
Julesssss Apr 22, 2026
6361f34
Merge pull request #88285 from shubham1206agra/knip-audit-export-6
Julesssss Apr 22, 2026
facd48d
Merge branch 'Expensify:main' into knip-audit-export-1
shubham1206agra Apr 22, 2026
80a6541
Merge pull request #86869 from neerajbachani/fix/84248-vacation-deleg…
AndrewGable Apr 22, 2026
d8c732f
Merge branch 'main' of github.com:Expensify/App into onyx/session-4
parasharrajat Apr 22, 2026
4c80f6a
refactor: collapse dual runStitch paths into single Promise.all in Od…
jakubkalinski0 Apr 22, 2026
1ca1d27
Merge pull request #88254 from Expensify/claude-hideThreeDotsMenuForL…
AndrewGable Apr 22, 2026
4fa6854
Merge branch 'main' into jakubkalinski0/Odometer_blob_url_loss_detection
jakubkalinski0 Apr 22, 2026
8fd2263
Fix tests
parasharrajat Apr 22, 2026
0893231
chore: fix wrongfully pushed merge conflict
jakubkalinski0 Apr 22, 2026
082a0b8
refactor: remove overbearing local state cleanup
jakubkalinski0 Apr 22, 2026
452b7fa
Merge branch 'Expensify:main' into onyx/session-6
parasharrajat Apr 22, 2026
017b21f
Merge pull request #88401 from dukenv0307/fix/66407-part-8
roryabraham Apr 22, 2026
386ef04
Merge pull request #88064 from Expensify/cristipaval/send-money-fraud…
flodnv Apr 22, 2026
9941398
Merge pull request #87881 from software-mansion-labs/fix/newChatPage/…
NikkiWines Apr 22, 2026
a05608b
Update version to 9.3.61-3
OSBotify Apr 22, 2026
8a1bdd2
Update Mobile-Expensify submodule version to 9.3.61-3
OSBotify Apr 22, 2026
2371069
Merge branch 'main' into pr/84517
chrispader Apr 22, 2026
5f1063a
Merge pull request #88115 from emkhalid/fix/legacy-collect-subscription
aldo-expensify Apr 22, 2026
eb57213
refactor: remove empty `useOnyx` options objects
chrispader Apr 22, 2026
5b49715
Use avatar-style Gusto icon
ShridharGoel Apr 22, 2026
fbb2c1b
Restore base Gusto asset
ShridharGoel Apr 22, 2026
c06f8ca
Merge remote-tracking branch 'upstream/main' into gusto1.5
ShridharGoel Apr 22, 2026
69df032
Merge pull request #88149 from abbasifaizan70/87517
rlinoz Apr 22, 2026
0a3ec18
Merge pull request #87682 from Expensify/cmartins-ruleSummary
luacmartins Apr 22, 2026
7caa24a
rename file
luacmartins Apr 22, 2026
28afae0
Merge pull request #88161 from Expensify/claude-helpSiteCancelDeleteS…
sakluger Apr 22, 2026
7387f0c
Merge branch 'main' into jakubkalinski0/Odometer_blob_url_loss_detection
jakubkalinski0 Apr 22, 2026
e37baa0
Merge pull request #88517 from software-mansion-labs/fix-debug-builds…
roryabraham Apr 22, 2026
9b1e46f
Auto-fix ESLint warnings, adjust max warning count
roryabraham Apr 22, 2026
8c7bc5f
Fix prettier
roryabraham Apr 22, 2026
bb23130
Destructure import
roryabraham Apr 22, 2026
76f15c5
Merge pull request #88553 from Expensify/Rory-FixESLintWarningCount
roryabraham Apr 22, 2026
a675eee
Merge branch 'main' of https://github.com/Expensify/App into gusto1.5
ShridharGoel Apr 22, 2026
8da78c2
Merge branch 'main' into helpsite-reports-to-spend-87974
stephanieelliott Apr 23, 2026
c70c52b
Merge pull request #88209 from software-mansion-labs/mrejdak/fix-zoom…
mjasikowski Apr 23, 2026
85d6175
Use dynamic browser tab title on SearchPage based on search type
MelvinBot Apr 23, 2026
7e688cf
Simplify document title to just use 'Spend' instead of dynamic search…
MelvinBot Apr 23, 2026
cc199b0
Move useDocumentTitle back to original line 29 position
MelvinBot Apr 23, 2026
e6caebe
Merge remote-tracking branch 'origin/main' into perf/defer-MoneyRepor…
TMisiukiewicz Apr 23, 2026
f7587b5
Merge remote-tracking branch 'origin/main' into perf/report-welcome-text
TMisiukiewicz Apr 23, 2026
1ff0a7c
Fix QA guide avatar disappearing when reopening admins room
MelvinBot Apr 23, 2026
f20ecda
Remove redundant indexOf in renderTopReportActions
MelvinBot Apr 23, 2026
882d1ee
fix search content is cut off when there are filter bars
bernhardoj Apr 23, 2026
8c4c2e7
Merge branch 'main' into root-tab-navigator
sumo-slonik Apr 23, 2026
b9d902d
Replace indexOf with precomputed index map in renderItem
MelvinBot Apr 23, 2026
cd199f8
Merge pull request #82934 from software-mansion-labs/war-in/domains/s…
mountiny Apr 23, 2026
5b98fda
Merge branch 'main' into pr/84517
chrispader Apr 23, 2026
da2820f
Merge remote-tracking branch 'upstream/main' into decompose-scan-pr1-…
rinej Apr 23, 2026
3c7b126
Merge branch 'main' into fix/issue-82188
hoangzinh Apr 23, 2026
7fc6b9b
Merge branch 'main' into jakubkalinski0/Odometer_blob_url_loss_detection
jakubkalinski0 Apr 23, 2026
cceddfb
Revert renderTopReportActions to pass global index
MelvinBot Apr 23, 2026
a506630
Merge branch 'Expensify:main' into onyx/session-4
parasharrajat Apr 23, 2026
de41aee
Trigger workflow
hoangzinh Apr 23, 2026
a48f2a0
Change currentUserAccountID param type from number | undefined to num…
MelvinBot Apr 23, 2026
de80470
fix: Expense - Map expense is shown instead scan expense
TaduJR Apr 23, 2026
72dc4b6
Merge pull request #88511 from callstack-internal/perf/report-welcome…
mountiny Apr 23, 2026
b31a553
Run Claude PR reviewer on Contributor+ approval
mountiny Apr 23, 2026
5fbfe15
Merge pull request #88565 from Expensify/claude-fixSpendPageBrowserTa…
madmax330 Apr 23, 2026
7e807bf
Merge pull request #88573 from bernhardoj/fix/84876-search-content-cu…
JS00001 Apr 23, 2026
135e6d1
Merge pull request #88230 from KJ21-ENG/kj/86927-lhn-rbr-modified-amount
Valforte Apr 23, 2026
01b9f34
Merge remote-tracking branch 'origin/main' into perf/defer-MoneyRepor…
TMisiukiewicz Apr 23, 2026
c27efa4
Merge pull request #88571 from Expensify/claude-fixQaGuideAvatarDisap…
mountiny Apr 23, 2026
d9d23cf
Update version to 9.3.61-4
OSBotify Apr 23, 2026
4c52779
Update Mobile-Expensify submodule version to 9.3.61-4
OSBotify Apr 23, 2026
6b93902
Extract Contributor+ membership check into composite action
mountiny Apr 23, 2026
be9524a
refactor: move MFAError creation from challenge actions to callers
dariusz-biela Apr 23, 2026
c5b9477
Bump @sentry/webpack-plugin to 5.2.0 and googleapis to ^152.0.0
MelvinBot Apr 23, 2026
d41bdad
Update package-lock.json for bumped devDependencies
MelvinBot Apr 23, 2026
3de9659
fix: ignore stale draft iouRequestType when reportID differs from route
TaduJR Apr 23, 2026
05e6e2f
refactor: pass decodeLibraryError result directly to breadcrumb calls
dariusz-biela Apr 23, 2026
446c095
refactor: move challenge type validation into request functions
dariusz-biela Apr 23, 2026
a107395
Merge branch 'main' into feat/88044-add-displays-section-in-save-sear…
bernhardoj Apr 23, 2026
4ccde7f
lint
bernhardoj Apr 23, 2026
297fd88
refactor: add LOCAL_ERRORS.UNRECOGNIZED, reserve UNHANDLED_EXCEPTION …
dariusz-biela Apr 23, 2026
61958d6
refactor: restore JSDoc for processScenarioAction
dariusz-biela Apr 23, 2026
a3db661
refactor: replace DecodedLibraryError and DecodedWebAuthnError with M…
dariusz-biela Apr 23, 2026
4daa1f0
Merge pull request #88274 from Expensify/claude-referralProgramCTATapFix
amyevans Apr 23, 2026
5be9f6e
Merge pull request #87083 from callstack-internal/decompose-scan-pr1-…
cristipaval Apr 23, 2026
8857fcf
refactor: simplify failReason fallback with nullish coalescing
dariusz-biela Apr 23, 2026
25cf814
add missing lastSelectedDistanceRates
OlimpiaZurek Apr 23, 2026
36fcdc8
Merge branch 'main' into cmaritns-renameFIle
luacmartins Apr 23, 2026
06b9cdc
Drop NETWORK dep from visibleReportActions derivation
adhorodyski Apr 23, 2026
d08e104
Merge pull request #88390 from nabi-ebrahimi/fix/expense-qab-pay-pers…
luacmartins Apr 23, 2026
a613428
Merge pull request #88518 from software-mansion-labs/jnowakow/block-r…
luacmartins Apr 23, 2026
2081d56
Merge branch 'main' into perf/extract-useParticipantSubmission-hook
OlimpiaZurek Apr 23, 2026
f38c046
Merge pull request #88548 from Expensify/cmaritns-renameFIle
luacmartins Apr 23, 2026
fd5edf6
Merge pull request #88448 from bernhardoj/feat/88044-add-displays-sec…
JS00001 Apr 23, 2026
fba471a
Merge pull request #86733 from Expensify/claude-fixMigratedUserWelcom…
rlinoz Apr 23, 2026
416dfe0
Merge pull request #87848 from nkdengineer/fix/87605
dangrous Apr 23, 2026
c89c413
Merge pull request #88585 from TaduJR/fix-Expense-Map-expense-is-show…
AndrewGable Apr 23, 2026
9856338
Merge pull request #86023 from software-mansion-labs/jakubkalinski0/O…
Julesssss Apr 23, 2026
bfed334
Merge pull request #88367 from KJ21-ENG/kj/87174-fix-rhp-sluggish-ani…
Julesssss Apr 23, 2026
9b4c4e0
Merge pull request #88280 from shubham1206agra/knip-audit-export-1
Julesssss Apr 23, 2026
eb119eb
Merge pull request #88584 from Expensify/mountiny-claude-review-cplus…
AndrewGable Apr 23, 2026
5173ab7
Merge pull request #88186 from hoangzinh/fix/issue-82188
mountiny Apr 23, 2026
910312a
fix fab navigation
sumo-slonik Apr 23, 2026
a0772d1
Merge branch 'Expensify:main' into onyx/session-6
parasharrajat Apr 23, 2026
2363a90
Merge pull request #88466 from ShridharGoel/gusto1.5
yuwenmemon Apr 23, 2026
2862e14
fixing share modal flow
sumo-slonik Apr 23, 2026
97bf507
Merge pull request #88191 from bernhardoj/fix/88051-popover-height-in…
luacmartins Apr 23, 2026
5f8f5a4
Merge pull request #88343 from dukenv0307/fix/66407-part-7
roryabraham Apr 23, 2026
e4ca4a1
Remove trailing whitespace
rafecolton Apr 23, 2026
bc71f44
Update country list
rafecolton Apr 23, 2026
dd56444
Minor copy changes
rafecolton Apr 23, 2026
63dd8b9
Update list of countries for Expensify Card eligibility
jamesdeanexpensify Apr 23, 2026
d99e1b6
Drop typing write
inimaga Apr 23, 2026
520b4bb
Update tests
inimaga Apr 23, 2026
b60ea9b
Update version to 9.3.62-0
OSBotify Apr 23, 2026
e1e6b5c
Update Mobile-Expensify submodule version to 9.3.62-0
OSBotify Apr 23, 2026
104da35
Merge pull request #88010 from Expensify/helpsite-reports-to-spend-87974
sakluger Apr 23, 2026
8575311
Merge pull request #88626 from Expensify/update-country-list
carlosmiceli Apr 23, 2026
0c01edb
Update Mobile-Expensify submodule to c756878
OSBotify Apr 23, 2026
73caf8e
Merge origin/main: resolve help doc conflicts (Reports → Spend nav)
stephanieelliott Apr 23, 2026
0008d7c
Update Approve-Expenses.md
stephanieelliott Apr 23, 2026
001d37b
Update and rename Unapproved-Spend.md to Reconcile-Expenses-With-Acco…
stephanieelliott Apr 23, 2026
bbcc91e
Update Using-Search-on-the-Spend-Page.md
stephanieelliott Apr 23, 2026
03d6362
Apply suggestions from code review
stephanieelliott Apr 23, 2026
096e732
Update Approve-Expenses.md
stephanieelliott Apr 23, 2026
f7874c0
Update Approve-Expenses.md
stephanieelliott Apr 23, 2026
f1833d1
Update and rename Reconcile-Expenses-With-Accounting.md to Accounting…
stephanieelliott Apr 23, 2026
a082984
Update and rename Using-Search-on-the-Spend-Page.md to Use-Search-Sho…
stephanieelliott Apr 23, 2026
6c601b3
Update Accounting-Search-Shortcuts.md
stephanieelliott Apr 23, 2026
da1f667
Update redirects.csv
stephanieelliott Apr 23, 2026
1df185b
Add proportionate guidance for unrequested magic code emails
MelvinBot Apr 23, 2026
3b6496d
Update Use-Search-Shortcuts.md
stephanieelliott Apr 23, 2026
ffacf2a
put spend rule summary and editing behind env guard
luacmartins Apr 23, 2026
9af7d59
fix prettier
luacmartins Apr 23, 2026
ede2cc5
Merge pull request #88663 from Expensify/cmartins-addEnvGuard
luacmartins Apr 24, 2026
3eb4190
Update version to 9.3.62-1
OSBotify Apr 24, 2026
6f0a583
Update Mobile-Expensify submodule version to 9.3.62-1
OSBotify Apr 24, 2026
18f2b54
Merge pull request #88382 from callstack-internal/bulk-edit-bug-tax-f…
marcaaron Apr 24, 2026
25192d3
Update Avoiding-common-scams.md
stephanieelliott Apr 24, 2026
f191085
Update Avoiding-common-scams.md
stephanieelliott Apr 24, 2026
0def5a7
Update Avoiding-common-scams.md
stephanieelliott Apr 24, 2026
03404f6
Update Avoiding-common-scams.md
stephanieelliott Apr 24, 2026
d1a6c6c
Merge branch 'main' into helpsite-remove-video
stephanieelliott Apr 24, 2026
4cfb6a6
Merge pull request #88662 from Expensify/claude-updateUnrequestedMagi…
RachCHopkins Apr 24, 2026
9711673
Remove unused cpu-cores action
roryabraham Apr 24, 2026
da08db8
Merge remote-tracking branch 'upstream/main' into 83848-migrate-CHANG…
huult Apr 24, 2026
d4fd0b1
Merge branch 'main' into perf/defer-MoneyReportHeaderSecondaryActions
TMisiukiewicz Apr 24, 2026
85b08e7
Revert "Show migrated user welcome modal immediately and navigate to …
roryabraham Apr 24, 2026
2573187
create NavigationDeferredMount
TMisiukiewicz Apr 24, 2026
78abe59
docs: update NavigationDeferredMount jsdoc and PERFORMANCE.md
TMisiukiewicz Apr 24, 2026
febcc76
Adjust TabNavigator imports on native
WojtekBoman Apr 24, 2026
4baa536
fix: track expense ignores tax
dominictb Apr 24, 2026
9230c14
Merge branch 'Expensify:main' into perf/research-redundancies
adhorodyski Apr 24, 2026
9b428c1
Merge pull request #88630 from Expensify/issa-remove-optimistic-conci…
inimaga Apr 24, 2026
7f4eacf
fixing share modal flow
sumo-slonik Apr 23, 2026
38e5b00
perf: restore selectors in policy/derived hooks
sumo-slonik Apr 24, 2026
1535c86
Merge branch 'main' into root-tab-navigator
sumo-slonik Apr 24, 2026
2543694
update entry screen
huult Apr 24, 2026
4c62e96
Merge pull request #88590 from Expensify/claude-snykFixSentryGoogleapis
MonilBhavsar Apr 24, 2026
a5e5357
merge: resolve conflict in MFA State.tsx exports
dariusz-biela Apr 24, 2026
ecdbf43
Merge pull request #88522 from callstack-internal/perf/defer-MoneyRep…
rlinoz Apr 24, 2026
5c59005
polish tab bar glitch
sumo-slonik Apr 24, 2026
408dda2
Merge pull request #88592 from callstack-internal/perf/research-redun…
rlinoz Apr 24, 2026
b081f54
Merge pull request #87315 from Expensify/helpsite-remove-video
twisterdotcom Apr 24, 2026
5f60c77
Merge pull request #85234 from software-mansion-labs/root-tab-navigator
mountiny Apr 24, 2026
9ed4d7b
Merge branch 'main' into VickyStash/bugfix/88238-fix-new-message-indi…
sosek108 Apr 24, 2026
48c0406
refactor: reuse categorizeHttpStatus in isHttpSuccess
dariusz-biela Apr 24, 2026
0be77a3
refactor: replace default export with named export for parseHttpResponse
dariusz-biela Apr 24, 2026
620eeaa
Merge pull request #84517 from margelo/@chrispader/bump-onyx-to-3.0.46
mountiny Apr 24, 2026
083c78a
docs: add JSDoc to findReasonByBackendMessage explaining its purpose
dariusz-biela Apr 24, 2026
d815227
fix: restore DEFAULT_STATE export accidentally removed during merge
dariusz-biela Apr 24, 2026
a45cb50
do not render MoneyRequestReportNavigation when unnecessary
TMisiukiewicz Apr 24, 2026
92ac391
Merge pull request #84510 from TaduJR/feat-Make-Cancel-Subscription-O…
justinpersaud Apr 24, 2026
cb11ba2
Merge remote-tracking branch 'origin/main' into perf/MoneyRequestRepo…
TMisiukiewicz Apr 24, 2026
93fc19e
address PERF-11: fold snapshot guard into selector
TMisiukiewicz Apr 24, 2026
bdc9224
gate SelectionToolbar mount on active selection
TMisiukiewicz Apr 24, 2026
7e55b29
Merge pull request #88687 from Expensify/revert-86733-claude-fixMigra…
rlinoz Apr 24, 2026
50270ae
Merge pull request #88714 from callstack-internal/perf/MoneyRequestRe…
mountiny Apr 24, 2026
bcc785f
lift focus sync into gate to preserve selection context
TMisiukiewicz Apr 24, 2026
fcf869e
Merge pull request #88694 from dominictb/fix/track-expense-ignores-tax
chuckdries Apr 24, 2026
92c9028
Merge pull request #87368 from s77rt/handle-saml-required-reauth
mountiny Apr 24, 2026
aba72c7
Merge pull request #88290 from parasharrajat/onyx/session-4
tgolen Apr 24, 2026
e3fa8f0
Merge pull request #87975 from software-mansion-labs/dariusz-biela/re…
chuckdries Apr 24, 2026
d61800b
Merge pull request #88721 from callstack-internal/perf/guard-selectio…
mountiny Apr 24, 2026
42ea881
Merge pull request #88684 from Expensify/Rory-RemoveUnnecessaryAction
AndrewGable Apr 24, 2026
f094ea5
Merge pull request #87660 from hungvu193/fix-664420-part3
dangrous Apr 24, 2026
82173a2
Update version to 9.3.62-2
OSBotify Apr 24, 2026
7bc98b6
Update Mobile-Expensify submodule version to 9.3.62-2
OSBotify Apr 24, 2026
94e1e10
Merge pull request #87979 from callstack-internal/perf/extract-usePar…
marcaaron Apr 24, 2026
78be79e
Revert "feat: Add inline editing for tables on desktop"
puneetlath Apr 24, 2026
d8f61a5
Merge pull request #88751 from Expensify/revert-83127-fix/82534
puneetlath Apr 24, 2026
1322ea8
Update version to 9.3.62-3
OSBotify Apr 24, 2026
a2b2614
Update Mobile-Expensify submodule version to 9.3.62-3
OSBotify Apr 24, 2026
1d9eb57
Merge pull request #88292 from parasharrajat/onyx/session-6
tgolen Apr 24, 2026
dabe385
Merge pull request #88536 from callstack-internal/VickyStash/bugfix/8…
mountiny Apr 24, 2026
5f898ec
Apply suggestion from @github-actions[bot]
stephanieelliott Apr 24, 2026
d653358
Update Use-Search-Shortcuts.md
stephanieelliott Apr 24, 2026
0f9bba8
Merge pull request #88415 from Expensify/claude-docsUpdatesSearchGrou…
trjExpensify Apr 24, 2026
415d5ae
Merge pull request #87741 from huult/83848-migrate-CHANGE_POLICY_EDUC…
mjasikowski Apr 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
23 changes: 14 additions & 9 deletions .claude/agents/deploy-blocker-investigator.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: deploy-blocker-investigator
description: Investigates deploy blockers to find the causing PR and recommend resolution.
tools: Glob, Grep, Read, Bash, BashOutput
tools: Glob, Grep, Read, Write, Bash, BashOutput
model: inherit
---

Expand Down Expand Up @@ -114,11 +114,9 @@ See Decision Tree below for label actions.

### Step 7: Post comment and update labels

Post your findings (use single quotes for the body to handle special characters):
Write the comment body to a temp file using the Write tool, then post it:
```bash
gh issue comment "$ISSUE_URL" --body '## 🔍 Investigation Summary
...your comment here...
'
gh issue comment "$ISSUE_URL" --body-file /tmp/investigation-summary.md
```

Remove label only if the decision tree warrants it:
Expand All @@ -131,7 +129,12 @@ Call scripts by name only (e.g., `removeDeployBlockerLabel.sh`), not with full p

### Step 8: Assign contributors

When a causing PR is identified with medium or high confidence, assign the PR author and all approving reviewers to the deploy blocker issue using `gh issue edit "$ISSUE_URL" --add-assignee`. Extract approving reviewers from `gh pr view <PR_NUMBER> --json reviews`.
If the primary causing PR has at least medium confidence, assign its author and approving reviewers to the deploy blocker issue. Only assign contributors from this single PR.

```bash
gh pr view <PR_NUMBER> --json reviews
gh issue edit "$ISSUE_URL" --add-assignee <logins>
```

---

Expand Down Expand Up @@ -172,7 +175,7 @@ Choose ONE:

## Comment Format

Post ONE comment using this exact format:
Use the Write tool to create `/tmp/investigation-summary.md` with the following markdown structure. Every field and heading must be present.

```markdown
## 🔍 Investigation Summary
Expand All @@ -186,7 +189,7 @@ Post ONE comment using this exact format:
Brief explanation of why this recommendation (1-2 sentences).


**Assigned**: @author (PR author), @reviewer (approving reviewer) — or omit if no causing PR identified
**Assigned**: @author (PR author), @reviewer (approving reviewer) from highest-confidence causing PR only — omit if no causing PR identified
**Labels**: [Describe any label changes made]

<details>
Expand All @@ -206,6 +209,8 @@ Technical explanation of what went wrong in the code.

</details>
```

Then post with: `gh issue comment "$ISSUE_URL" --body-file /tmp/investigation-summary.md`
---

## Constraints
Expand All @@ -218,7 +223,7 @@ Technical explanation of what went wrong in the code.
- Make assumptions about code you haven't read
- Recommend DEMOTE for bugs affecting core functionality (auth, payments, data loss)
- Close the issue—only update labels and comment
- Use heredocs, temp files, or shell redirects for comments
- Use heredocs or shell redirects for comments

**DO:**
- Always verify the causing PR touches the affected code before concluding
Expand Down
2 changes: 1 addition & 1 deletion .claude/commands/investigate-deploy-blocker.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
allowed-tools: Bash(gh issue view:*),Bash(gh issue comment:*),Bash(gh issue edit:*),Bash(gh issue list:*),Bash(gh pr view:*),Bash(gh pr list:*),Bash(gh pr diff:*),Bash(gh api:*),Bash(git log:*),Bash(git show:*),Bash(git blame:*),Bash(removeDeployBlockerLabel.sh:*),Glob,Grep,Read
allowed-tools: Bash(gh issue view:*),Bash(gh issue comment:*),Bash(gh issue edit:*),Bash(gh issue list:*),Bash(gh pr view:*),Bash(gh pr list:*),Bash(gh pr diff:*),Bash(gh api:*),Bash(git log:*),Bash(git show:*),Bash(git blame:*),Bash(removeDeployBlockerLabel.sh:*),Glob,Grep,Read,Write
description: Investigate a deploy blocker issue to find the causing PR and recommend resolution
---

Expand Down
2 changes: 1 addition & 1 deletion .claude/scripts/createInlineComment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Secure proxy script to create an inline comment on a GitHub PR.
set -eu

readonly ALLOWED_RULES_FILE="${GITHUB_WORKSPACE}/.claude/allowed-rules.txt"
readonly ALLOWED_RULES_FILE="${ALLOWED_RULES_FILE:-${GITHUB_WORKSPACE}/.claude/allowed-rules.txt}"

# Print error and exit.
die() {
Expand Down
4 changes: 3 additions & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@
"mcp__sentry__search_events",
"mcp__sentry__search_issue_events",
"mcp__sentry__search_issues",
"mcp__sentry__whoami"
"mcp__sentry__whoami",
"Bash(agent-device *)",
"Bash(echo \"$(npm root -g)/agent-device/skills/agent-device\")"
]
},
"enabledPlugins": {
Expand Down
15 changes: 15 additions & 0 deletions .claude/skills/agent-device/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
name: agent-device
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.
allowed-tools: Bash(agent-device *) Bash(npm root *)
---

# agent-device

## Pre-flight

`agent-device` CLI version: !`agent-device --version 2>&1 || echo "NOT_INSTALLED"`

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"`

> 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.
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Manual memoization is therefore:
The codebase enforces this via:
- **Babel plugin**: `babel-plugin-react-compiler` in `babel.config.js`
- **ESLint processor**: `eslint-plugin-react-compiler-compat` suppresses redundant lint rules when files compile successfully
- **CI compliance check**: `scripts/react-compiler-compliance-check.ts` blocks PRs with manual memoization in new files
- **CI compliance check**: `scripts/react-compiler-compliance-check.ts` enforces that new components/hooks compile and that existing compiled files don't regress

Reference: [React Compiler documentation](https://react.dev/learn/react-compiler)

Expand Down
33 changes: 33 additions & 0 deletions .github/actions/composite/isContributorPlus/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Is Contributor+
description: Check whether a GitHub user is a member of the Expensify/contributor-plus team. Sets IS_CPLUS=true when the user is a member, IS_CPLUS=false otherwise.

inputs:
USERNAME:
description: The GitHub login of the user to check.
required: true
OS_BOTIFY_TOKEN:
description: OSBotify token. Needed to read team memberships (the default GITHUB_TOKEN lacks the read:org scope).
required: true

outputs:
IS_CPLUS:
description: "'true' if the user is a member of Expensify/contributor-plus, 'false' otherwise."
value: ${{ steps.check.outputs.IS_CPLUS }}

runs:
using: composite
steps:
- name: Check Contributor+ membership
id: check
shell: bash
env:
GH_TOKEN: ${{ inputs.OS_BOTIFY_TOKEN }}
USERNAME: ${{ inputs.USERNAME }}
run: |
if gh api "/orgs/Expensify/teams/contributor-plus/memberships/$USERNAME" --silent; then
echo "::notice::✅ $USERNAME is a Contributor+ member"
echo "IS_CPLUS=true" >> "$GITHUB_OUTPUT"
else
echo "::notice::$USERNAME is not a Contributor+ member"
echo "IS_CPLUS=false" >> "$GITHUB_OUTPUT"
fi
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,7 @@ function detectReactComponent(code: string, filename: string): boolean | undefin
// eslint-disable-next-line @typescript-eslint/naming-convention
ClassDeclaration(path) {
const {superClass} = path.node as unknown as SuperClassType;
if (
superClass &&
((superClass.object && superClass.object.name === 'React' && isComponentOrPureComponent(superClass.property.name)) || isComponentOrPureComponent(superClass.name))
) {
if (superClass && ((superClass.object?.name === 'React' && isComponentOrPureComponent(superClass.property.name)) || isComponentOrPureComponent(superClass.name))) {
isReactComponent = true;
path.stop();
}
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/javascript/authorChecklist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -15767,11 +15767,11 @@ class GithubUtils {
/**
* Fetch all pull requests given a list of PR numbers.
*/
static fetchAllPullRequests(pullRequestNumbers) {
static fetchAllPullRequests(pullRequestNumbers, repo = CONST_1.default.APP_REPO) {
const oldestPR = pullRequestNumbers.sort((a, b) => a - b).at(0);
return this.paginate(this.octokit.pulls.list, {
owner: CONST_1.default.GITHUB_OWNER,
repo: CONST_1.default.APP_REPO,
repo,
state: 'all',
sort: 'created',
direction: 'desc',
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/javascript/awaitStagingDeploys/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12545,11 +12545,11 @@ class GithubUtils {
/**
* Fetch all pull requests given a list of PR numbers.
*/
static fetchAllPullRequests(pullRequestNumbers) {
static fetchAllPullRequests(pullRequestNumbers, repo = CONST_1.default.APP_REPO) {
const oldestPR = pullRequestNumbers.sort((a, b) => a - b).at(0);
return this.paginate(this.octokit.pulls.list, {
owner: CONST_1.default.GITHUB_OWNER,
repo: CONST_1.default.APP_REPO,
repo,
state: 'all',
sort: 'created',
direction: 'desc',
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/javascript/checkAndroidStatus/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -737288,11 +737288,11 @@ class GithubUtils {
/**
* Fetch all pull requests given a list of PR numbers.
*/
static fetchAllPullRequests(pullRequestNumbers) {
static fetchAllPullRequests(pullRequestNumbers, repo = CONST_1.default.APP_REPO) {
const oldestPR = pullRequestNumbers.sort((a, b) => a - b).at(0);
return this.paginate(this.octokit.pulls.list, {
owner: CONST_1.default.GITHUB_OWNER,
repo: CONST_1.default.APP_REPO,
repo,
state: 'all',
sort: 'created',
direction: 'desc',
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/javascript/checkDeployBlockers/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11812,11 +11812,11 @@ class GithubUtils {
/**
* Fetch all pull requests given a list of PR numbers.
*/
static fetchAllPullRequests(pullRequestNumbers) {
static fetchAllPullRequests(pullRequestNumbers, repo = CONST_1.default.APP_REPO) {
const oldestPR = pullRequestNumbers.sort((a, b) => a - b).at(0);
return this.paginate(this.octokit.pulls.list, {
owner: CONST_1.default.GITHUB_OWNER,
repo: CONST_1.default.APP_REPO,
repo,
state: 'all',
sort: 'created',
direction: 'desc',
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/javascript/checkSVGCompression/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -20337,11 +20337,11 @@ class GithubUtils {
/**
* Fetch all pull requests given a list of PR numbers.
*/
static fetchAllPullRequests(pullRequestNumbers) {
static fetchAllPullRequests(pullRequestNumbers, repo = CONST_1.default.APP_REPO) {
const oldestPR = pullRequestNumbers.sort((a, b) => a - b).at(0);
return this.paginate(this.octokit.pulls.list, {
owner: CONST_1.default.GITHUB_OWNER,
repo: CONST_1.default.APP_REPO,
repo,
state: 'all',
sort: 'created',
direction: 'desc',
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/javascript/formatCodeCovComment/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11999,11 +11999,11 @@ class GithubUtils {
/**
* Fetch all pull requests given a list of PR numbers.
*/
static fetchAllPullRequests(pullRequestNumbers) {
static fetchAllPullRequests(pullRequestNumbers, repo = CONST_1.default.APP_REPO) {
const oldestPR = pullRequestNumbers.sort((a, b) => a - b).at(0);
return this.paginate(this.octokit.pulls.list, {
owner: CONST_1.default.GITHUB_OWNER,
repo: CONST_1.default.APP_REPO,
repo,
state: 'all',
sort: 'created',
direction: 'desc',
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/javascript/getArtifactInfo/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11773,11 +11773,11 @@ class GithubUtils {
/**
* Fetch all pull requests given a list of PR numbers.
*/
static fetchAllPullRequests(pullRequestNumbers) {
static fetchAllPullRequests(pullRequestNumbers, repo = CONST_1.default.APP_REPO) {
const oldestPR = pullRequestNumbers.sort((a, b) => a - b).at(0);
return this.paginate(this.octokit.pulls.list, {
owner: CONST_1.default.GITHUB_OWNER,
repo: CONST_1.default.APP_REPO,
repo,
state: 'all',
sort: 'created',
direction: 'desc',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12154,11 +12154,11 @@ class GithubUtils {
/**
* Fetch all pull requests given a list of PR numbers.
*/
static fetchAllPullRequests(pullRequestNumbers) {
static fetchAllPullRequests(pullRequestNumbers, repo = CONST_1.default.APP_REPO) {
const oldestPR = pullRequestNumbers.sort((a, b) => a - b).at(0);
return this.paginate(this.octokit.pulls.list, {
owner: CONST_1.default.GITHUB_OWNER,
repo: CONST_1.default.APP_REPO,
repo,
state: 'all',
sort: 'created',
direction: 'desc',
Expand Down
13 changes: 0 additions & 13 deletions .github/actions/javascript/getGraphiteString/action.yml

This file was deleted.

This file was deleted.

Loading