Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2874 commits
Select commit Hold shift + click to select a range
c2839d0
Update Connect-Personal-Cards.md
stephanieelliott Apr 13, 2026
f15d06c
Merge pull request #84598 from Expensify/claude-fixOfflineReadForNewU…
MonilBhavsar Apr 13, 2026
691982f
Merge pull request #80706 from Expensify/scott-showReimbursedReportAc…
mollfpr Apr 13, 2026
f87ff10
Merge branch 'main' into claude-personalCardR3HelpSite
stephanieelliott Apr 13, 2026
9e543f2
Merge pull request #87566 from DylanDylann/refactor-66579-p4
mollfpr Apr 13, 2026
865496c
refactor: use personalDetailsSelector and DEFAULT_MISSING_ID
BartekObudzinski Apr 13, 2026
2114698
refactor: outer guard handles not-found directly, inner guard only ch…
BartekObudzinski Apr 13, 2026
096b350
perf: add conciergeReportID to extraData for FlashList invalidation
BartekObudzinski Apr 13, 2026
e7df4b7
Add beta gate for selection mode report-level actions
Krishna2323 Apr 13, 2026
ecf315e
update beta name.
Krishna2323 Apr 13, 2026
4ae9c6c
refactor: add whisper actions content
LukasMod Apr 10, 2026
735d6a6
refactor: add ReportMentionWhisperContent
LukasMod Apr 10, 2026
8227110
refactor: add ConfirmWhisperContent
LukasMod Apr 10, 2026
d33e151
update beta name in test file.
Krishna2323 Apr 13, 2026
ad2b843
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 13, 2026
10a8a9d
refactor: add PaymentContent
LukasMod Apr 8, 2026
e2c9953
Merge branch 'main' into fix/ios-group-crash-after-invite
marufsharifi Apr 13, 2026
1a720dd
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 13, 2026
da83e1c
refactor: rename personal details param in participant display helper
marufsharifi Apr 13, 2026
d6e1400
refactor: add ApprovalFlowContent
LukasMod Apr 13, 2026
064d2b2
Bump onyx to 3.0.59
VickyStash Apr 13, 2026
4d15757
Merge branch 'main' into perf/refactor-get-report-sections
jmusial Apr 13, 2026
cdb744d
Merge branch 'Expensify:main' into krishna2323/issue/66425-part-5
Krishna2323 Apr 13, 2026
897ef5c
Merge pull request #87622 from software-mansion-labs/collectioneur/fi…
mjasikowski Apr 13, 2026
f83047e
Merge branch 'main' of https://github.com/TaduJR/App into refactor-co…
TaduJR Apr 13, 2026
2e33a14
refactor: address review feedback, simplify inner guard
BartekObudzinski Apr 13, 2026
0d3f409
Merge branch 'main' of https://github.com/TaduJR/App into refactor-co…
TaduJR Apr 13, 2026
eb8e558
refactor: inline isDeletedTransactionThread into shouldShowNotFoundPage
BartekObudzinski Apr 13, 2026
a47cdb9
Merge branch 'main' of https://github.com/TaduJR/App into fix-Screen-…
TaduJR Apr 13, 2026
4e61351
Merge branch 'main' into JKobrynski/feat/80091-migrate-keys-to-ram-on…
fabioh8010 Apr 13, 2026
d029f85
refactor: extract report workflow functions into IOU/ReportWorkflow.ts
DylanDylann Apr 13, 2026
96f9509
Add a patch for extra mount render
VickyStash Apr 13, 2026
8448c96
migrate POLICY_ACCOUNTING_SAGE_INTACCT_AUTO_SYNC and POLICY_ACCOUNTIN…
huult Apr 13, 2026
dfcc8c2
perf add lazy load for right modal navigator
rinej Apr 13, 2026
115aa4e
Remove extra tetsts
ZhenjaHorbach Apr 13, 2026
b7eb1dc
fix: restore original condition and add unit tests
LukasMod Apr 13, 2026
d7774de
fix recomputing all reports on transaction updates
TMisiukiewicz Apr 13, 2026
3be5476
Merge pull request #87575 from software-mansion-labs/jakubstec/fix-no…
mjasikowski Apr 13, 2026
f315c87
Merge pull request #87463 from Expensify/claude-fixDraggableListFoote…
mjasikowski Apr 13, 2026
17f2e2a
fix: remove unused imports in IOUTest.ts and ReportWorkflowTest.ts
DylanDylann Apr 13, 2026
3c1aa13
Merge pull request #80723 from Expensify/maria-helpdot-freeze-card-ca…
MariaHCD Apr 13, 2026
19e88e6
Merge pull request #80724 from Expensify/maria-freeze-card-admin
MariaHCD Apr 13, 2026
bfc3ca3
fix prettier
TMisiukiewicz Apr 13, 2026
149bd49
fix: remove unused imports in ReportWorkflow.ts and IOU/index.ts
DylanDylann Apr 13, 2026
2c11000
fix ts
LukasMod Apr 13, 2026
7e97843
fix: add missing MentionReportContext and unit tests
LukasMod Apr 13, 2026
f5bdf41
Merge pull request #87558 from callstack-internal/refactor/account-ma…
JS00001 Apr 13, 2026
7ff89d3
Merge remote-tracking branch 'upstream/main' into 83846-migrate-POLIC…
huult Apr 13, 2026
a9185f1
use Set has instead of in
LukasMod Apr 13, 2026
2022bbf
update entry screen
huult Apr 13, 2026
88b882b
Merge pull request #87559 from callstack-internal/refactor/report-not…
JS00001 Apr 13, 2026
a3485fc
Merge pull request #87601 from callstack-internal/perf/lhn-reduce-red…
JS00001 Apr 13, 2026
e0a6c35
Merge pull request #87735 from Krishna2323/krishna2323/issue/87734
JS00001 Apr 13, 2026
288c6a7
test: add additional PureReportActionItem tests for PaymentContent br…
LukasMod Apr 13, 2026
f896ffc
Merge pull request #87711 from Expensify/claude-fixMagicCodeEmailAfte…
JS00001 Apr 13, 2026
83157c4
Merge pull request #87546 from Expensify/blimpich-hideTravelCardDetails
rlinoz Apr 13, 2026
1e532da
test: add additional PureReportActionItem tests for ApprovalFlowConte…
LukasMod Apr 13, 2026
8d383b0
Merge pull request #87449 from dukenv0307/fix/66411-part-19
rlinoz Apr 13, 2026
a547c1e
Merge remote-tracking branch 'exfy/main' into decompose/selection-too…
adhorodyski Apr 13, 2026
e3d8b78
Merge pull request #86619 from TaduJR/refactor-code-to-keep-navigatio…
Valforte Apr 13, 2026
37dfcee
Merge pull request #87623 from getusha/fix-622372
MariaHCD Apr 13, 2026
e4081b7
Merge pull request #87397 from ryntgh/issue-87093
arosiclair Apr 13, 2026
07a98ab
Merge branch 'main' into fix/84526
nkdengineer Apr 13, 2026
92c8bbe
Max "%" grey in the control
tgolen Apr 13, 2026
55d4afd
Merge pull request #86844 from TaduJR/fix-iOS-Copilot-App-returns-to-…
mollfpr Apr 13, 2026
f7e64b2
Merge pull request #87725 from Expensify/claude-fixReportCreationRace…
arosiclair Apr 13, 2026
73d51b5
fix: correct consumer imports and test mocks for ReportWorkflow
DylanDylann Apr 13, 2026
fd72fa0
shawn doesnt like fireworks
grgia Apr 13, 2026
48b49fa
Merge pull request #87699 from ShridharGoel/fix-frozen-card-admin-nam…
MariaHCD Apr 13, 2026
54ded1a
Merge pull request #87363 from software-mansion-labs/perf/refactor-ge…
luacmartins Apr 13, 2026
5aca208
fix: correct consumer imports and test mocks for ReportWorkflow
DylanDylann Apr 13, 2026
7f49000
Merge pull request #86778 from Expensify/claude-addViewOperatorToSear…
lschurr Apr 13, 2026
77b6fc2
Update version to 9.3.58-8
OSBotify Apr 13, 2026
12b904c
Update Mobile-Expensify submodule version to 9.3.58-8
OSBotify Apr 13, 2026
a6f983e
fix: remove Activity wrapper from PopoverMenu in AttachmentPickerWith…
adhorodyski Apr 13, 2026
5de6c8d
Merge pull request #87510 from hungvu193/fix-664420-par1
dangrous Apr 13, 2026
14f5ee2
Merge pull request #87612 from Expensify/claude-hideTimeTaxFields
Apr 13, 2026
894b18a
Update version to 9.3.58-9
OSBotify Apr 13, 2026
79df12b
Update Mobile-Expensify submodule version to 9.3.58-9
OSBotify Apr 13, 2026
45a15c6
Merge pull request #87764 from Expensify/georgia-fireworks
MonilBhavsar Apr 13, 2026
b9afbea
Merge pull request #87770 from callstack-internal/fix/87708-popover-m…
cristipaval Apr 13, 2026
63bb4f8
Merge main and resolve reportAttributes conflict
Krishna2323 Apr 13, 2026
7a5b543
refactor getSearchOptions to use conciergeReportID from useOnyx
dukenv0307 Apr 13, 2026
7d55eda
Merge pull request #87693 from shubham1206agra/refactor-currency-utils
blimpich Apr 13, 2026
f112835
Update src/pages/Share/ShareDetailsPage.tsx
jakubstec Apr 13, 2026
021e139
Merge pull request #86557 from Expensify/claude-fixOdometerMergeData
rlinoz Apr 13, 2026
098e4bd
Filter pending-delete members from approval workflows and approver list
MelvinBot Apr 13, 2026
3ab6c34
eslint fix
jakubstec Apr 13, 2026
572bb91
Merge pull request #87520 from FitseTLT/fix-members-import--page-cras…
francoisl Apr 13, 2026
5f7b812
Merge pull request #87746 from callstack-internal/lazy-load-right-mod…
roryabraham Apr 13, 2026
68dc160
Merge pull request #87686 from Expensify/cm-company-cards-page-not-lo…
stitesExpensify Apr 13, 2026
c8d4e38
Merge pull request #86599 from Expensify/claude-helpSiteBusinessBankA…
garrettmknight Apr 13, 2026
d82fda8
Merge branch 'Expensify:main' into krishna2323/issue/66413/part-1
Krishna2323 Apr 13, 2026
f22fb19
Merge pull request #87538 from TaduJR/fix-Screen-Reader-Many-Pages-Th…
amyevans Apr 13, 2026
4e1dea3
Merge pull request #84728 from cretadn22/update-workflow-in-removing-…
aldo-expensify Apr 13, 2026
e80038e
Merge pull request #87694 from ShridharGoel/gusto1.3
yuwenmemon Apr 13, 2026
6aed2d2
Merge branch 'main' into cmartins-updateEmptyCardCopy
luacmartins Apr 13, 2026
ed32884
update copy/icon
luacmartins Apr 13, 2026
1f588a9
add copy
luacmartins Apr 13, 2026
bae5db4
Merge pull request #87701 from shubham1206agra/refactor-convertToDisp…
blimpich Apr 13, 2026
537aa14
Merge branch 'Expensify:main' into issue/85928
twilight2294 Apr 13, 2026
4f69c19
Merge pull request #87527 from Krishna2323/krishna2323/issue/66425-pa…
madmax330 Apr 13, 2026
d8c24d9
Merge pull request #87419 from Expensify/cmartins-updateEmptyCardCopy
luacmartins Apr 13, 2026
28471a8
Merge pull request #87745 from DylanDylann/refactor-report-workflow-v2
roryabraham Apr 13, 2026
2eaf861
Merge pull request #87586 from Expensify/claude-useActivityIndicatorI…
Julesssss Apr 13, 2026
5c3e0da
Merge pull request #87585 from Expensify/claude-useActivityIndicatorI…
Julesssss Apr 13, 2026
7cfbf41
Merge pull request #87588 from Expensify/claude-useActivityIndicatorI…
Julesssss Apr 13, 2026
c8b9cf6
Update version to 9.3.59-0
OSBotify Apr 13, 2026
8452484
Update Mobile-Expensify submodule version to 9.3.59-0
OSBotify Apr 13, 2026
7856de5
Merge pull request #87592 from Expensify/claude-useValidLoadingIndica…
Julesssss Apr 13, 2026
1e9de2e
Merge pull request #87590 from Expensify/claude-useActivityIndicatorI…
Julesssss Apr 13, 2026
83806e7
Improve cherry-pick workflow Slack notifications
MelvinBot Apr 13, 2026
d80271c
Merge branch 'main' of github.com:Expensify/App into onyx/session-3
parasharrajat Apr 13, 2026
5b48701
Merge pull request #87587 from Expensify/claude-useActivityIndicatorI…
Julesssss Apr 13, 2026
032f3e8
Merge pull request #87583 from Expensify/claude-useActivityIndicatorI…
Julesssss Apr 13, 2026
c73f616
Merge pull request #87584 from Expensify/claude-useActivityIndicatorI…
Julesssss Apr 13, 2026
fe4b509
Merge pull request #87594 from Expensify/claude-useActivityIndicatorI…
Julesssss Apr 13, 2026
3c514d5
Merge pull request #87589 from Expensify/claude-useValidLoadingIndica…
Julesssss Apr 13, 2026
0d30ff0
Use scalable line height for merchant rule descriptions
MelvinBot Apr 13, 2026
aaa4d6a
Merge pull request #87332 from nkdengineer/fix/84526
Valforte Apr 13, 2026
a0f9cc3
Merge pull request #87738 from callstack-internal/VickyStash/refactor…
Julesssss Apr 13, 2026
6acaf5d
introduce odometer consts
Julesssss Apr 13, 2026
87a513c
Merge pull request #87577 from software-mansion-labs/impr/spend-over-…
puneetlath Apr 13, 2026
2224db7
Add odometer-to-confirmation span with parent fallback and cancellation
Julesssss Apr 13, 2026
8d30769
Add image stitch span to OdometerReceiptStitcher
Julesssss Apr 13, 2026
c9c03bd
Add image capture span to odometer camera flow (web + native)
Julesssss Apr 13, 2026
61316cd
Distinguish odometer from distance in submit expense telemetry scenario
Julesssss Apr 13, 2026
4b22918
Fix lint: use nullish coalescing for odometer image check
Julesssss Apr 13, 2026
79bbac1
Add unit tests
parasharrajat Apr 13, 2026
9dc093e
fix import
parasharrajat Apr 13, 2026
65098ab
Merge pull request #87543 from Expensify/tgolen-chronos-oooUI
AndrewGable Apr 13, 2026
2fccdd9
Fix reviewer inline comments not posting due to missing allowed-rules…
kacper-mikolajczak Apr 13, 2026
feac47a
Update version to 9.3.59-1
OSBotify Apr 13, 2026
73d9201
Update Mobile-Expensify submodule version to 9.3.59-1
OSBotify Apr 13, 2026
8fd8688
Merge pull request #87275 from Krishna2323/krishna2323/issue/66413/pa…
tgolen Apr 13, 2026
cdee7b3
Fix actionlint: move ALLOWED_RULES_FILE from job-level to step-level env
kacper-mikolajczak Apr 13, 2026
d4558a4
fix: translation copy update
ikevin127 Apr 13, 2026
cddde9c
Thread delegateEmail through getFinishOnboardingTaskOnyxData and comp…
Krishna2323 Apr 13, 2026
90631b9
Merge pull request #87300 from Expensify/claude-merchantRuleDescender…
blimpich Apr 13, 2026
a7a816d
Merge pull request #87803 from kacper-mikolajczak/fix-reviewer-commen…
Julesssss Apr 13, 2026
87febc0
Update version to 9.3.59-2
OSBotify Apr 13, 2026
afd7024
Update Mobile-Expensify submodule version to 9.3.59-2
OSBotify Apr 13, 2026
4d53819
Merge pull request #87568 from Expensify/melvin-help-tax-disabled-alert
stephanieelliott Apr 13, 2026
4ed757a
Merge pull request #87713 from ikevin127/ikevin127-qboTravelInvoiceCopy
blimpich Apr 13, 2026
d7ecc95
Merge pull request #87625 from software-mansion-labs/perf/raise-billi…
luacmartins Apr 13, 2026
ac5ed8a
Address review feedback: remove dead constants and make distance/odom…
Julesssss Apr 13, 2026
373e9b0
fix copy
luacmartins Apr 13, 2026
5899441
Remove odometer-specific submit expense scenario, classify as distance
Julesssss Apr 13, 2026
1546ea1
Add onSelected handler to Chronos timer dropdown option
MelvinBot Apr 13, 2026
2914241
Add unmount cleanup and platform attribute to odometer image capture …
Julesssss Apr 13, 2026
2c95266
update copy
luacmartins Apr 13, 2026
3fc41ed
Add functional UI test for ChronosTimerHeaderButton
MelvinBot Apr 13, 2026
0a5ccfc
Merge pull request #87821 from Expensify/cmartins-fixCopy
luacmartins Apr 13, 2026
cd3afc3
Address review feedback: remove redundant tests, use given/when/then …
MelvinBot Apr 14, 2026
245007b
Update version to 9.3.59-3
OSBotify Apr 14, 2026
47f1d6e
Update Mobile-Expensify submodule version to 9.3.59-3
OSBotify Apr 14, 2026
774139c
Remove unnecessary useAncestors mock from test
MelvinBot Apr 14, 2026
4e810c6
Use existing PopoverMenuItem and PopoverMenuProps types from @compone…
MelvinBot Apr 14, 2026
1ea7637
Add eslint disabled reasons
tgolen Apr 14, 2026
d5405ff
Merge branch 'claude-fixChronosTimerDropdown' of github.com:Expensify…
tgolen Apr 14, 2026
dbd65cc
Merge pull request #86831 from Expensify/helpsite-duplicate-expense-i…
johncschuster Apr 14, 2026
2305bf2
Merge pull request #87747 from callstack-internal/perf/improve-report…
mountiny Apr 14, 2026
79a14db
Merge branch 'main' into fix/66411-part-20
dukenv0307 Apr 14, 2026
d0dd557
Merge pull request #86991 from Expensify/melvin-helpsite-attendee-col…
stephanieelliott Apr 14, 2026
95bbf29
merge main
dukenv0307 Apr 14, 2026
ffb8a5b
update test
dukenv0307 Apr 14, 2026
68ba8c2
add more test
dukenv0307 Apr 14, 2026
f09fb4a
merge main
dukenv0307 Apr 14, 2026
06d4a86
prettier
dukenv0307 Apr 14, 2026
6e22f15
Add files via upload
stephanieelliott Apr 14, 2026
bbb8403
Update Manage-Personal-Cards.md
stephanieelliott Apr 14, 2026
9a460f3
add 'is' to variable name
GCyganek Apr 14, 2026
e61fbfc
Merge branch 'main' into JKobrynski/feat/80091-migrate-keys-to-ram-on…
fabioh8010 Apr 14, 2026
ae690a6
Merge branch 'main' into refactor-66578-p2
DylanDylann Apr 14, 2026
0513632
Filter pending-delete members from OverLimitApproverPage
MelvinBot Apr 14, 2026
0097170
Fix EnablePayments.tsx to handle isLoading state from optimistic data
fabioh8010 Apr 14, 2026
b5a3331
merge main
s77rt Apr 14, 2026
c99b0b5
Merge pull request #87376 from software-mansion-labs/@GCyganek/landsc…
mjasikowski Apr 14, 2026
eb9c963
Merge pull request #87626 from software-mansion-labs/jakubstec/fix-un…
mjasikowski Apr 14, 2026
4a12160
Merge pull request #87593 from software-mansion-labs/jakubstec/fix-od…
mjasikowski Apr 14, 2026
96534bd
Merge pull request #87465 from software-mansion-labs/@GCyganek/landsc…
mjasikowski Apr 14, 2026
399750a
Merge pull request #87744 from huult/83846-migrate-POLICY_ACCOUNTING_…
mjasikowski Apr 14, 2026
c7038e0
fix: conflicts
truph01 Apr 14, 2026
5135c09
fix: conflicts
truph01 Apr 14, 2026
01cff2e
Merge remote-tracking branch 'origin/main' into fix/83767-gbr-stale-t…
MobileMage Apr 14, 2026
e6d2a1b
Raise useOnyx out of TransactionListItem
jmusial Apr 14, 2026
4a24621
Merge pull request #87359 from callstack-internal/perf-send-message-p…
cristipaval Apr 14, 2026
2752ed4
Merge branch 'Expensify:main' into decompose/selection-toolbar
adhorodyski Apr 14, 2026
34eb371
fix: typecheck
truph01 Apr 14, 2026
d22af49
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 14, 2026
048fd46
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 14, 2026
5b2ff1e
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 14, 2026
db12251
Merge branch 'main' of github.com:callstack-internal/Expensify-App in
LukasMod Apr 14, 2026
29aca3b
Merge pull request #87462 from callstack-internal/perf-send-message-p…
cristipaval Apr 14, 2026
827b444
Merge pull request #87775 from Expensify/claude-filterPendingDeleteFr…
cristipaval Apr 14, 2026
0d953f9
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 14, 2026
fba7c56
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 14, 2026
1914b7f
Merge pull request #86908 from truph01/fix/66457-part-3
madmax330 Apr 14, 2026
3dd1570
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 14, 2026
6b5395f
Use install_modules_dependencies in group-ib-fp.podspec
mateuuszzzzz Apr 14, 2026
789fedf
refactor: move hold expense helpers into existing IOU/Hold.ts
DylanDylann Apr 14, 2026
0a057f4
Merge pull request #86848 from callstack-internal/new-feed-for-expensify
madmax330 Apr 14, 2026
c74212c
Merge pull request #87659 from callstack-internal/decompose/selection…
rlinoz Apr 14, 2026
e4049b7
Merge pull request #87399 from callstack-internal/perf-send-message-p…
cristipaval Apr 14, 2026
09539bb
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 14, 2026
d1a8c21
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 14, 2026
4b5b509
Merge pull request #87231 from dukenv0307/fix/66424-part-14
mjasikowski Apr 14, 2026
8860afe
Update Podfile.lock
mateuuszzzzz Apr 14, 2026
aa49130
Merge pull request #82065 from M00rish/invitecash
lakchote Apr 14, 2026
0c68091
Merge pull request #87492 from callstack-internal/perf-send-message-p…
cristipaval Apr 14, 2026
2dac0c4
Update Podfile.lock
mateuuszzzzz Apr 14, 2026
1baedeb
remove selector returning large output
TMisiukiewicz Apr 14, 2026
c19843b
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 14, 2026
cb59285
Merge branch 'main' into use-install-module-deps-in-group-ib-spec
mateuuszzzzz Apr 14, 2026
ad4b6ef
fix bug
JS00001 Apr 14, 2026
8b25111
Merge pull request #87507 from callstack-internal/perf-send-message-p…
cristipaval Apr 14, 2026
5bdda38
remove mobile changes
JS00001 Apr 14, 2026
facbe9a
Merge branch 'main' of github.com:Expensify/App into jsenyitko-fix-un…
JS00001 Apr 14, 2026
6c6d79c
Merge pull request #87103 from software-mansion-labs/@GCyganek/gps/ad…
puneetlath Apr 14, 2026
a83492f
avoid calling deepEqual on selector output in useArchivedReportsIdSet
TMisiukiewicz Apr 14, 2026
476c380
Merge pull request #87335 from DylanDylann/refactor-66578-p2
Gonals Apr 14, 2026
df69620
Merge pull request #87895 from Expensify/jsenyitko-fix-unreported-exp…
luacmartins Apr 14, 2026
2c14051
Merge pull request #87894 from callstack-internal/perf/useAllPolicyEx…
rlinoz Apr 14, 2026
352ab15
Merge pull request #87772 from dukenv0307/fix/66411-part-20
rlinoz Apr 14, 2026
0df6b7a
Merge pull request #86632 from twilight2294/issue/85928
NikkiWines Apr 14, 2026
bcdb515
Merge pull request #87849 from software-mansion-labs/perf/raise-billi…
luacmartins Apr 14, 2026
36fb3bf
Merge pull request #86760 from callstack-internal/feature/pdf-rotatio…
lakchote Apr 14, 2026
25fb304
Merge remote-tracking branch 'origin/main' into claude-trackOnboardin…
MelvinBot Apr 14, 2026
158ebe1
Remove createWorkspaceTask from Track Intent onboarding tasks
MelvinBot Apr 14, 2026
b7b4b85
Merge pull request #87899 from callstack-internal/perf/useArchivedRep…
rlinoz Apr 14, 2026
1ebe416
Merge pull request #87809 from Krishna2323/krishna2323/issue/66425-pa…
madmax330 Apr 14, 2026
efc6371
Merge pull request #86608 from parasharrajat/onyx/session-3
tgolen Apr 14, 2026
29d7ee4
Merge pull request #84705 from ZhenjaHorbach/fix-issues-with-negative…
stitesExpensify Apr 14, 2026
867d438
Merge pull request #87823 from Expensify/claude-fixChronosTimerDropdown
AndrewGable Apr 14, 2026
ceb4523
Merge pull request #87791 from Expensify/claude-improveCherryPickSlac…
AndrewGable Apr 14, 2026
431ccf1
Merge pull request #87890 from DylanDylann/refactor-hold-expense-v2
roryabraham Apr 14, 2026
8e269e1
Merge pull request #87573 from Expensify/melvinbot/update-help-docs-g…
garrettmknight Apr 14, 2026
ac74be5
Merge pull request #86775 from Expensify/claude-updateEmptyWorkspaceCopy
carlosmiceli Apr 14, 2026
d556eb0
merge main
s77rt Apr 14, 2026
bef0744
Merge pull request #86744 from MobileMage/fix/83767-gbr-stale-trip-ro…
Valforte Apr 14, 2026
6c818f4
Merge pull request #85762 from Expensify/claude-trackOnboardingHomeCo…
dangrous Apr 14, 2026
0959965
Merge pull request #87417 from Expensify/claude-receiptCellMissingThu…
dangrous Apr 14, 2026
0bb7703
Merge pull request #87813 from Expensify/jules-odometerSentrySpans
Julesssss Apr 14, 2026
18410fb
Merge pull request #87169 from marufsharifi/fix/ios-group-crash-after…
stitesExpensify Apr 14, 2026
d25e0c9
Merge pull request #87254 from callstack-internal/JKobrynski/feat/800…
roryabraham Apr 14, 2026
4f73d11
Merge pull request #86829 from dukenv0307/fix/66407-part-5
roryabraham Apr 14, 2026
89f9c04
Merge pull request #87059 from Expensify/claude-personalCardR3HelpSite
joekaufmanexpensify Apr 14, 2026
2915f9a
Merge pull request #87552 from s77rt/hide-ach-if-only-non-reimbursable
joekaufmanexpensify Apr 14, 2026
323059c
Merge pull request #87879 from software-mansion-labs/use-install-modu…
roryabraham Apr 14, 2026
fe33971
Update Mobile-Expensify submodule to d10f585
OSBotify Apr 14, 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
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .claude/agents/deploy-blocker-investigator.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,10 @@ removeDeployBlockerLabel.sh "$ISSUE_URL" DeployBlocker # For Frontend bugs

Call scripts by name only (e.g., `removeDeployBlockerLabel.sh`), not with full paths.

### 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`.

---

## Decision Tree
Expand Down Expand Up @@ -182,6 +186,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
**Labels**: [Describe any label changes made]

<details>
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 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
description: Investigate a deploy blocker issue to find the causing PR and recommend resolution
---

Expand Down
9 changes: 5 additions & 4 deletions .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 Expand Up @@ -47,11 +47,12 @@ readonly LINE_ARG="${3:-}"
validate_rule "$BODY_ARG"
echo "Comment approved: $COMMENT_STATUS_REASON"

readonly FOOTER=$'\n\n---\n\nPlease rate this suggestion with 👍 or 👎 to help us improve! Reactions are used to monitor reviewer efficiency.'
readonly COMMENT_BODY="${BODY_ARG}${FOOTER}"

COMMIT_ID=$(gh api "/repos/$GITHUB_REPOSITORY/pulls/$PR_NUMBER" --jq '.head.sha')
readonly COMMIT_ID
readonly SHORT_SHA="${COMMIT_ID:0:7}"

readonly FOOTER=$'\n\n---\n\n'"Reviewed at: [${SHORT_SHA}](https://github.com/${GITHUB_REPOSITORY}/commit/${COMMIT_ID}) | Please rate this suggestion with 👍 or 👎 to help us improve! Reactions are used to monitor reviewer efficiency."
readonly COMMENT_BODY="${BODY_ARG}${FOOTER}"

PAYLOAD=$(jq -n \
--arg body "$COMMENT_BODY" \
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/composite/setupNode/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ runs:

- name: Install root project node packages
if: steps.cache-node-modules.outputs.cache-hit != 'true' || (inputs.IS_HYBRID_BUILD == 'true' && steps.cache-old-dot-node-modules.outputs.cache-hit != 'true')
uses: nick-fields/retry@3f757583fb1b1f940bc8ef4bf4734c8dc02a5847
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4
with:
timeout_minutes: 30
max_attempts: 3
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/buildAndroid.yml
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,8 @@ jobs:
sign: true
re-sign: true
ad-hoc: ${{ inputs.variant == 'Adhoc' }}
# We don't need Rock to setup java, because we already ran the setup-java action above
setup-java: false
keystore-file: './upload-key.keystore'
keystore-store-file: 'upload-key.keystore'
keystore-store-password: ${{ steps.load-credentials.outputs.ANDROID_UPLOAD_KEYSTORE_PASSWORD }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/buildIOS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ jobs:
run: echo "IS_PODFILE_SAME_AS_MANIFEST=${{ hashFiles('Mobile-Expensify/iOS/Podfile.lock') == hashFiles('Mobile-Expensify/iOS/Pods/Manifest.lock') }}" >> "$GITHUB_OUTPUT"

- name: Install cocoapods
uses: nick-fields/retry@3f757583fb1b1f940bc8ef4bf4734c8dc02a5847
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4
if: steps.pods-cache.outputs.cache-hit != 'true' || steps.compare-podfile-and-manifest.outputs.IS_PODFILE_SAME_AS_MANIFEST != 'true' || steps.setup-node.outputs.cache-hit != 'true'
with:
timeout_minutes: 10
Expand Down
52 changes: 43 additions & 9 deletions .github/workflows/cherryPick.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,34 @@ concurrency:
cancel-in-progress: false

jobs:
validate:
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
- name: Validate pull request URL
if: ${{ inputs.PULL_REQUEST_URL != '' }}
run: |
REPO_FULL_NAME=$(echo '${{ inputs.PULL_REQUEST_URL }}' | sed -E 's|https?://github.com/([^/]+/[^/]+)/pull/.*|\1|')
if [[ "$REPO_FULL_NAME" != ${{ github.repository }} ]] && [[ ! "$REPO_FULL_NAME" =~ Expensify/Mobile-Expensify* ]]; then
echo "::error::❌ Cherry picks are only supported for the Expensify/App and Expensify/Mobile-Expensify repositories. Found: $REPO_FULL_NAME"
exit 1
fi

- name: Verify PR is merged
if: ${{ inputs.PULL_REQUEST_URL != '' }}
env:
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
run: |
if gh pr view "${{ inputs.PULL_REQUEST_URL }}" --json mergedAt | jq --exit-status '.mergedAt'; then
echo "PR is merged: ${{ inputs.PULL_REQUEST_URL }}"
else
echo "::error::❌ PR is not merged: ${{ inputs.PULL_REQUEST_URL }}"
exit 1
fi

createNewVersion:
uses: ./.github/workflows/createNewVersion.yml
secrets: inherit
needs: [validate]
with:
# In order to submit a new build for production review, it must have a higher PATCH version than the previously-submitted build.
# The typical case is that with each staging deploy, we bump the BUILD version, and with each prod deploy we bump the PATCH version.
Expand All @@ -59,14 +84,6 @@ jobs:
echo "REPO_FULL_NAME=$(echo '${{ inputs.PULL_REQUEST_URL }}' | sed -E 's|https?://github.com/([^/]+/[^/]+)/pull/.*|\1|')" >> "$GITHUB_OUTPUT"
echo "PR_NUMBER=$(echo '${{ inputs.PULL_REQUEST_URL }}' | sed -E 's|.*/pull/([0-9]+).*|\1|')" >> "$GITHUB_OUTPUT"

- name: Verify pull request URL
if: ${{ inputs.PULL_REQUEST_URL != '' }}
run: |
if [[ "${{ steps.getPRInfo.outputs.REPO_FULL_NAME }}" != ${{ github.repository }} ]] && [[ ! "${{ steps.getPRInfo.outputs.REPO_FULL_NAME }}" =~ Expensify/Mobile-Expensify* ]]; then
echo "::error::❌ Cherry picks are only supported for the Expensify/App and Expensify/Mobile-Expensify repositories. Found: ${{ steps.getPRInfo.outputs.REPO_FULL_NAME }}"
exit 1
fi

- name: Set conflict branch name
if: ${{ inputs.PULL_REQUEST_URL != '' }}
id: getBranchName
Expand Down Expand Up @@ -262,7 +279,7 @@ jobs:
channel: '#deployer',
attachments: [{
color: 'good',
text: `🍒 Cherry-pick to *${{ inputs.TARGET }}* successful\nPR: ${{ inputs.PULL_REQUEST_URL || '(version bump only)' }}\nDeploy workflow: ${{ steps.findDeployRun.outputs.DEPLOY_RUN_MESSAGE }}`
text: `🍒 Cherry-pick to *${{ inputs.TARGET }}* successfully started\nPR: ${{ inputs.PULL_REQUEST_URL || '(version bump only)' }}\nDeploy workflow: ${{ steps.findDeployRun.outputs.DEPLOY_RUN_MESSAGE }}`
}]
}
env:
Expand Down Expand Up @@ -427,3 +444,20 @@ jobs:
env:
GITHUB_TOKEN: ${{ github.token }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}

- name: "Announce CP cancellation in #deployer"
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e
if: ${{ cancelled() }}
with:
status: custom
custom_payload: |
{
channel: '#deployer',
attachments: [{
color: 'warning',
text: `🍒 Cherry-pick to *${{ inputs.TARGET }}* was cancelled\nPR: ${{ inputs.PULL_REQUEST_URL || '(version bump only)' }}\nWorkflow run: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}`
}]
}
env:
GITHUB_TOKEN: ${{ github.token }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
3 changes: 2 additions & 1 deletion .github/workflows/claude-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ jobs:
run: |
"$GITHUB_WORKSPACE/.github/scripts/extractAllowedRules.sh" \
"$GITHUB_WORKSPACE/.claude/skills/coding-standards/rules" \
"$GITHUB_WORKSPACE/.claude/allowed-rules.txt"
"$RUNNER_TEMP/allowed-rules.txt"

- name: Load code review JSON schema
id: schema
Expand All @@ -82,6 +82,7 @@ jobs:
env:
GH_TOKEN: ${{ github.token }}
STRUCTURED_OUTPUT: ${{ steps.code-review.outputs.structured_output }}
ALLOWED_RULES_FILE: ${{ runner.temp }}/allowed-rules.txt
run: |
if [ -z "$STRUCTURED_OUTPUT" ]; then
echo "::error::Claude Code Action returned empty structured output"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ jobs:
# JS is better at handling JSON: https://stackoverflow.com/questions/72953526/github-actions-how-to-pass-tojson-result-to-shell-commands
- name: Check if this deploy was triggered by a cherry-pick
id: isCherryPick
uses: actions/github-script@e7aeb8c663f696059ebb5f9ab1425ed2ef511bdb
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
with:
script: |
const commitMessages = context.payload.commits.map((commit) => commit.message);
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deployBlockerInvestigation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,4 @@ jobs:
github_token: ${{ secrets.OS_BOTIFY_TOKEN }}
prompt: "/investigate-deploy-blocker ISSUE_URL: ${{ env.ISSUE_URL }}"
claude_args: |
--allowedTools "Task,Glob,Grep,Read,Bash(gh issue view:*),Bash(gh issue comment:*),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:*)"
--allowedTools "Task,Glob,Grep,Read,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:*)"
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ source "https://rubygems.org"
ruby ">= 3.3.4"

gem "cocoapods", "= 1.16.2"
gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
gem 'activesupport', '>= 7.2.3.1'
gem 'xcodeproj', '~> 1.27'
gem "fastlane", "~> 2", ">= 2.229.0"
gem "xcpretty", "~> 0"
Expand Down
18 changes: 9 additions & 9 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ GEM
specs:
CFPropertyList (3.0.8)
abbrev (0.1.2)
activesupport (7.2.3)
activesupport (7.2.3.1)
base64
benchmark (>= 0.3)
bigdecimal
Expand All @@ -12,7 +12,7 @@ GEM
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
minitest (>= 5.1, < 6)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
addressable (2.8.8)
Expand Down Expand Up @@ -45,8 +45,8 @@ GEM
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.3.0)
benchmark (0.3.0)
bigdecimal (4.0.1)
benchmark (0.5.0)
bigdecimal (4.1.1)
claide (1.1.0)
cocoapods (1.16.2)
addressable (~> 2.8)
Expand Down Expand Up @@ -89,8 +89,8 @@ GEM
colored2 (3.1.2)
commander (4.6.0)
highline (~> 2.0.0)
concurrent-ruby (1.3.5)
connection_pool (2.5.4)
concurrent-ruby (1.3.6)
connection_pool (3.0.2)
csv (3.3.5)
declarative (0.0.20)
digest-crc (0.7.0)
Expand Down Expand Up @@ -238,7 +238,7 @@ GEM
domain_name (~> 0.5)
httpclient (2.9.0)
mutex_m
i18n (1.14.7)
i18n (1.14.8)
concurrent-ruby (~> 1.0)
jmespath (1.6.2)
json (2.18.0)
Expand All @@ -251,7 +251,7 @@ GEM
mime-types-data (3.2025.0924)
mini_magick (4.13.2)
mini_mime (1.1.5)
minitest (5.26.1)
minitest (5.27.0)
molinillo (0.8.0)
multi_json (1.18.0)
multipart-post (2.4.1)
Expand Down Expand Up @@ -322,7 +322,7 @@ PLATFORMS
x86_64-linux

DEPENDENCIES
activesupport (>= 6.1.7.5, != 7.1.0)
activesupport (>= 7.2.3.1)
benchmark
bigdecimal
cocoapods (= 1.16.2)
Expand Down
2 changes: 1 addition & 1 deletion Mobile-Expensify
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1009035200
versionName "9.3.52-0"
versionCode 1009035903
versionName "9.3.59-3"
// Supported language variants must be declared here to avoid from being removed during the compilation.
// This also helps us to not include unnecessary language variants in the APK.
resConfigs "en", "es"
Expand Down
3 changes: 0 additions & 3 deletions android/app/src/main/java/com/expensify/chat/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,6 @@ class MainActivity : ReactActivity() {
.apply()
BootSplash.init(this)
super.onCreate(null)
if (resources.getBoolean(R.bool.portrait_only)) {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
}

// Sets translucent status bar. This code is based on what the react-native StatusBar
// module does, but we need to do it here to avoid the splash screen jumping on app start.
Expand Down
4 changes: 0 additions & 4 deletions android/app/src/main/res/values-large/orientation.xml

This file was deleted.

4 changes: 0 additions & 4 deletions android/app/src/main/res/values-sw600dp/orientation.xml

This file was deleted.

4 changes: 0 additions & 4 deletions android/app/src/main/res/values/orientation.xml

This file was deleted.

1 change: 1 addition & 0 deletions assets/images/integrationicons/gusto-icon-square.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading