Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1185 commits
Select commit Hold shift + click to select a range
81b04d8
Update Mobile-Expensify submodule version to 9.3.38-0
OSBotify Mar 16, 2026
4dea6ed
Merge branch 'main' into reports/getReportName-eslint
sosek108 Mar 16, 2026
460abcd
minor fix.
Krishna2323 Mar 16, 2026
0f5c69e
Merge branch 'Expensify:main' into refactor-getPolicy-17
shubham1206agra Mar 16, 2026
242d77a
feat: Set Expiry Options start date does not default to today's date …
nkdengineer Mar 16, 2026
3a98ff8
Make useDragoverDismiss one-shot to avoid redundant state updates
adhorodyski Mar 16, 2026
8a32880
Fix linter
staszekscp Mar 16, 2026
839ffbe
Add useIsInSidePanel context to replace isInSidePanel prop drilling
adhorodyski Mar 16, 2026
3e98b92
Add justification comment for eslint-disable react-hooks/exhaustive-deps
MelvinBot Mar 16, 2026
f7caa8d
sentry debug spans to be displayed only locally
sosek108 Mar 16, 2026
90354c0
remove tryEndSpan as it's purpose is no more needed. No `/api/Log` fo…
sosek108 Mar 16, 2026
3322d39
fix eslint error
sosek108 Mar 16, 2026
add0a2f
Merge remote-tracking branch 'origin/main' into claude-fixReceiptRepl…
MelvinBot Mar 16, 2026
b477038
Merge branch 'main' into korytko/perf/optimize-navigate-to-search
JakubKorytko Mar 16, 2026
fbc5309
Use ccache in npx rock clean
LukasMod Mar 16, 2026
d42bae5
fix: hide the expired card on Home page
nkdengineer Mar 16, 2026
dc6463c
Replace isInSidePanel prop drilling with useIsInSidePanel context hook
adhorodyski Mar 16, 2026
85ec2f5
Merge pull request #84872 from Expensify/claude-fixAngleBracketTaxVal…
MonilBhavsar Mar 16, 2026
6006a79
Revert "Merge pull request #82507 from NJ-2020/fix/selection-bug-37447"
MelvinBot Mar 16, 2026
5fbe379
Merge pull request #85257 from Expensify/claude-fixExpoLocationMock
rlinoz Mar 16, 2026
db43f03
Add exactlyMatch to workspace description mention context
MelvinBot Mar 16, 2026
235f6f4
Merge pull request #84773 from Expensify/claude-clearStaleReimburseme…
MarioExpensify Mar 16, 2026
2beda1f
add unit tést
nkdengineer Mar 16, 2026
b31adb4
Merge branch 'main' into follow-up/70951
daledah Mar 16, 2026
2ec7553
fix: existing search renders
JakubKorytko Mar 16, 2026
560eb7c
Merge branch 'main' of github.com:software-mansion-labs/expensify-app…
Guccio163 Mar 16, 2026
c9745d8
Merge pull request #83816 from dukenv0307/fix/66411-part-8
rlinoz Mar 16, 2026
bc7b1b1
Merge pull request #85282 from Expensify/blimpich-fixTravelCardWallet…
rlinoz Mar 16, 2026
e08fca0
Merge pull request #84274 from software-mansion-labs/perf/migrate-con…
mountiny Mar 16, 2026
885a17b
fix overlapping header on IOS
jmusial Mar 16, 2026
3c3cea4
fix: sync playback speed between parent and thread video players
yuvrajangadsingh Mar 13, 2026
505dece
fix: remove ref from useEffect dependency array
yuvrajangadsingh Mar 13, 2026
4b64e92
fix: auto-close popover after duplicate success animation
yuvrajangadsingh Mar 6, 2026
41abf87
style: fix import sort order
yuvrajangadsingh Mar 9, 2026
ea2b170
fix: use shouldDelay prop on PopoverMenu instead of closeModal
yuvrajangadsingh Mar 10, 2026
174b8c0
fix: add shouldDelay to DropdownOption type for ButtonWithDropdownMenu
yuvrajangadsingh Mar 10, 2026
a588495
fix: clear delayed close timeout on unmount and visibility change
yuvrajangadsingh Mar 10, 2026
8ed7ef9
fix: merge useEffects, use 1500ms delay per design
yuvrajangadsingh Mar 10, 2026
ca1bcfc
refactor: pass onReset callback to useThrottledButtonState instead of…
yuvrajangadsingh Mar 12, 2026
8dcd76c
fix: use early return in handleDuplicateReset for lint
yuvrajangadsingh Mar 12, 2026
38b69a1
Add unit tests for CREATE to SUBMIT iouType resolution in IOURequestS…
MelvinBot Mar 16, 2026
ab41e8f
Fix: apply Prettier formatting to IOURequestStepHoursTest
MelvinBot Mar 16, 2026
b3ed415
Fix TypeScript error in IOURequestStepHoursTest
MelvinBot Mar 16, 2026
7d80037
add shouldSkipOnboarding params to log
TMisiukiewicz Mar 16, 2026
6bcebf6
Centralize CREATE iouType resolution in navigateToConfirmationPage
MelvinBot Mar 16, 2026
fbd79ab
Merge remote-tracking branch 'origin/claude-fixTimeExpenseReceiptFrom…
MelvinBot Mar 16, 2026
3617034
Merge pull request #85369 from Expensify/claude-fixNonExistingRoomMen…
madmax330 Mar 16, 2026
0b5c9ed
Merge pull request #85406 from callstack-internal/add-log-to-onboardi…
cristipaval Mar 16, 2026
2757212
migrate to ImageManipulator to fix depracation error
rinej Mar 16, 2026
410724a
Merge remote-tracking branch 'origin/main' into JKobrynski/feat/80091…
JKobrynski Mar 16, 2026
3e1f315
move from workspace cards_ to cardList
rlinoz Mar 16, 2026
056741e
fix lint
jmusial Mar 16, 2026
724f470
Merge pull request #84486 from shubham1206agra/refactor-getPolicy-17
justinpersaud Mar 16, 2026
a0250ae
Merge branch 'main' into issue-83884-2
nyomanjyotisa Mar 16, 2026
dc73a01
Merge pull request #85353 from callstack-internal/sentry/active-spans…
rlinoz Mar 16, 2026
69b7431
lint, fix tests
JKobrynski Mar 16, 2026
1402342
Merge pull request #85362 from nkdengineer/fix/84752-1
lakchote Mar 16, 2026
6cfca9b
Merge pull request #84046 from parasharrajat/revert-83905-rodrigo-rev…
rlinoz Mar 16, 2026
e8d0111
Merge remote-tracking branch 'origin/main' into claude-addDismissAcce…
MelvinBot Mar 16, 2026
096827a
Merge pull request #85125 from Expensify/claude-fixTestDriveIframeBlo…
stitesExpensify Mar 16, 2026
1a12ebb
Merge pull request #85354 from nkdengineer/fix/85268
lakchote Mar 16, 2026
631cb90
Merge pull request #85272 from Expensify/claude-removeMigrationRedire…
luacmartins Mar 16, 2026
81a244a
Merge pull request #85285 from ikevin127/ikevin127-travelUSDGuard
blimpich Mar 16, 2026
70089d6
Merge pull request #82754 from Expensify/claude-fixButtonRoleForNavig…
mollfpr Mar 16, 2026
9df3f77
Merge pull request #84886 from software-mansion-labs/perf/deduplicate…
luacmartins Mar 16, 2026
25ab4b3
Merge pull request #85343 from thelullabyy/fix/84903
rlinoz Mar 16, 2026
fc7c726
Revert "Multi-level categories with colons are shown with hierarchica…
yuwenmemon Mar 16, 2026
58616be
Merge pull request #84826 from Expensify/display-correct-card-currency
chuckdries Mar 16, 2026
b663462
Merge pull request #84392 from callstack-internal/reports/getReportNa…
neil-marcellini Mar 16, 2026
b083791
Add QuickActionsBar
WojtekBoman Mar 16, 2026
aa2d8b6
remove space
JS00001 Mar 16, 2026
ca59f96
Merge pull request #85355 from callstack-internal/decompose/use-is-in…
rlinoz Mar 16, 2026
2f0895a
Merge pull request #85433 from Expensify/revert-83200-82068
yuwenmemon Mar 16, 2026
679fa60
Merge pull request #85441 from Expensify/jsenyitko-fix-space
francoisl Mar 16, 2026
5f1dba7
Remove returnKeyType for numeric/phone pad keyboards
MelvinBot Mar 16, 2026
b556b9f
Merge pull request #83561 from lorretheboy/fix/82973
cristipaval Mar 16, 2026
d619a85
Add a comment
VickyStash Mar 16, 2026
07b6452
Merge pull request #84901 from Expensify/issa/add-reasoning-for-auto-…
cristipaval Mar 16, 2026
834a218
Add clearTimeout
VickyStash Mar 16, 2026
fd87693
Merge pull request #84783 from Expensify/claude-fixReceiptReplaceNavBack
jasperhuangg Mar 16, 2026
d2ef14a
Merge pull request #84282 from jjcoffee/fix/duplicate-distance-expens…
JS00001 Mar 16, 2026
7713882
Merge pull request #84118 from software-mansion-labs/feature/jakubste…
iwiznia Mar 16, 2026
9f8fb9f
Merge pull request #85195 from yuvrajangadsingh/fix/84443-thread-play…
AndrewGable Mar 16, 2026
75145a7
Revert "Add clearTimeout"
VickyStash Mar 16, 2026
f7a8da4
Merge branch 'Expensify:main' into new-feat/9402-1
NJ-2020 Mar 16, 2026
37bf849
Merge pull request #85251 from Krishna2323/krishna2323/issue/66417-2.7
tgolen Mar 16, 2026
9b4d357
Merge pull request #83906 from software-mansion-labs/Guccio163/onyx-c…
tgolen Mar 16, 2026
72f2971
Merge pull request #84029 from callstack-internal/extract-remove-onyx…
tgolen Mar 16, 2026
74ce489
Merge pull request #85219 from software-mansion-labs/fix/update-no-re…
mountiny Mar 16, 2026
f43f5f8
fix: search list loader on native mobile
JakubKorytko Mar 16, 2026
37b3280
delete Deferred component
JakubKorytko Mar 16, 2026
e1fd5ab
Merge branch 'main' into korytko/perf/optimize-navigate-to-search
JakubKorytko Mar 16, 2026
7a3681a
Merge pull request #84024 from yuvrajangadsingh/fix/83708-duplicate-p…
tgolen Mar 16, 2026
06221e6
Merge pull request #83420 from daledah/fix/81040
tylerkaraszewski Mar 16, 2026
6149edb
Merge pull request #85121 from dukenv0307/fix/67788-part-1
tgolen Mar 16, 2026
dde5007
Update version to 9.3.38-1
OSBotify Mar 16, 2026
fca7741
Update Mobile-Expensify submodule version to 9.3.38-1
OSBotify Mar 16, 2026
d3a556e
defer web search
JakubKorytko Mar 16, 2026
546dbbf
Merge remote-tracking branch 'origin/main' into rodrigo-fix-whichcard
rlinoz Mar 16, 2026
1c65fa5
Merge pull request #65321 from NJ-2020/new-feat/9402-1
Julesssss Mar 16, 2026
40ef482
Merge pull request #85280 from Expensify/jules-cherryPickDeployLink
Julesssss Mar 16, 2026
98af278
fix type in test
rlinoz Mar 16, 2026
64c84e4
Merge pull request #85360 from callstack-internal/feat/add-ccache-clean
arosiclair Mar 16, 2026
a0644d6
Merge pull request #85103 from Expensify/claude-addDismissAccessibili…
arosiclair Mar 16, 2026
37e842d
Rename feedCountry to programKey in updateSettlementFrequency and upd…
allgandalf Mar 16, 2026
52e65f0
Revert "defer web search"
JakubKorytko Mar 16, 2026
a5664a4
Merge pull request #83547 from callstack-internal/perf/per-item-level…
cristipaval Mar 16, 2026
6745f7c
Merge pull request #85124 from TaduJR/fix-Keyboard-Navigation-Track-D…
francoisl Mar 16, 2026
33da95e
Merge remote-tracking branch 'upstream/main' into JKobrynski/feat/800…
JKobrynski Mar 16, 2026
c3a6d88
Merge pull request #83752 from lorretheboy/fix-part-02/82594
dangrous Mar 16, 2026
04a6a07
Merge pull request #85032 from nkdengineer/fix/81714
dangrous Mar 16, 2026
d10004a
Merge pull request #84588 from Expensify/claude-fixLanguagePageScreen…
dangrous Mar 16, 2026
8981598
Merge branch 'main' into korytko/perf/optimize-navigate-to-search
JakubKorytko Mar 16, 2026
261a60f
Merge pull request #85223 from Eskalifer1/fix/84737
dangrous Mar 16, 2026
52ce4bc
fix: invoice navigation
JakubKorytko Mar 16, 2026
1ff11bf
Use minWidth for transaction receipt buttons to prevent label truncation
Julesssss Mar 16, 2026
56d9144
Merge pull request #83944 from Krishna2323/krishna2323/issue/81195
mountiny Mar 16, 2026
588d3a1
Use stringifyWaypointsForAPI consistently across all call sites
MelvinBot Mar 16, 2026
012ab0e
Merge pull request #84910 from software-mansion-labs/korytko/perf/opt…
mountiny Mar 16, 2026
f1fabc9
Merge pull request #82309 from callstack-internal/JKobrynski/feat/800…
mountiny Mar 16, 2026
f89737f
Merge pull request #85307 from Expensify/claude-fetchAnnouncementRoom…
francoisl Mar 16, 2026
264dc16
Merge pull request #85035 from Expensify/claude-removeRedundantModalC…
srikarparsi Mar 16, 2026
309e6d2
Merge pull request #85470 from Expensify/jules-fixOdometerButtonTrunc…
inimaga Mar 16, 2026
4e02280
Merge pull request #84865 from Uzaifm127/fix/82026
inimaga Mar 16, 2026
6f0ddc3
Merge pull request #84751 from bernhardoj/chore/66456-remove-onyx-con…
inimaga Mar 16, 2026
bee2195
Merge pull request #85366 from Expensify/revert-fix-selection-bug-82507
Julesssss Mar 16, 2026
cd4db13
Merge pull request #83428 from marufsharifi/bugfix/group-by-filter-se…
Julesssss Mar 16, 2026
deb3519
Merge pull request #85038 from nyomanjyotisa/issue-83884-2
aldo-expensify Mar 17, 2026
56ff757
Merge pull request #85419 from Expensify/rodrigo-fix-whichcard
blimpich Mar 17, 2026
3c10b57
Exempt # FAQ from task-based heading requirement
MelvinBot Mar 17, 2026
bb0888e
Always log transactionID in useNavigateTo3DSAuthorizationChallenge
chuckdries Mar 17, 2026
46e18ff
Merge branch 'main' into chore/66456-remove-onyx-connect-shared-billi…
bernhardoj Mar 17, 2026
9913295
Merge branch 'main' into paulnjs-fix/80150
paulnjs Mar 17, 2026
592094b
Extract isNumericKeyboard into helper function with unit tests
MelvinBot Mar 17, 2026
5d77b31
Fix: sort imports to satisfy Prettier
MelvinBot Mar 17, 2026
b6fc76b
fix: remove isTravelCVVTestingEnabled and fallback card logic
ikevin127 Mar 17, 2026
19248df
chore: prettier
ikevin127 Mar 17, 2026
406bebe
Use InputComponentBaseProps type for isNumericKeyboard
MelvinBot Mar 17, 2026
0f539d1
Use CONST variables for keyboard type string literals
MelvinBot Mar 17, 2026
e888bab
Merge branch 'Expensify:main' into rohansasne/phase3-remove-flat-fall…
allgandalf Mar 17, 2026
3d76813
Fix typecheck: cast feedCountry to CardProgramKey
allgandalf Mar 17, 2026
9df9985
Rename feedCountry local var to programKey in getCardCurrency
allgandalf Mar 17, 2026
2f5367b
Fix Book travel button to use travel-enabled policy instead of active…
WojtekBoman Mar 17, 2026
16c4afd
Merge branch 'main' into change-payer-for-share
narefyev91 Mar 17, 2026
3cbe9d7
Merge remote-tracking branch 'origin' into fix/83885
Eskalifer1 Mar 17, 2026
04d4bae
Merge pull request #85492 from Expensify/chuckdries/3ds-nav-logging-i…
rafecolton Mar 17, 2026
e06f607
Update version to 9.3.38-2
OSBotify Mar 17, 2026
b8f9a32
Update Mobile-Expensify submodule version to 9.3.38-2
OSBotify Mar 17, 2026
6d11afb
Increase timeout to fix flaky test
MonilBhavsar Mar 17, 2026
4e1fe96
Replace FullscreenLoadingIndicator with ActivityIndicator in PhoneNum…
MelvinBot Mar 17, 2026
3bcfa35
Fix: run Prettier on PhoneNumberPage
MelvinBot Mar 17, 2026
146444e
Replace FullScreenLoadingIndicator with ActivityIndicator in VerifyAc…
MelvinBot Mar 17, 2026
a6007d5
Update version to 9.3.38-3
OSBotify Mar 17, 2026
67b752a
Update Mobile-Expensify submodule version to 9.3.38-3
OSBotify Mar 17, 2026
aaf6634
Revert "[Home Page][V2] Time Sensitive - User Needs To Validate Account"
cristipaval Mar 17, 2026
f3245f1
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
kubabutkiewicz Mar 17, 2026
a1190d7
Use fullScreenLoading style instead of inline styles
MelvinBot Mar 17, 2026
1de1c39
Merge branch 'main' of https://github.com/TaduJR/App into fix-Arrow-k…
TaduJR Mar 17, 2026
7ba80d9
Merge pull request #85315 from Expensify/claude-fixTimeExpenseReceipt…
cristipaval Mar 17, 2026
02bcacd
Add primaryLoginSelector
WojtekBoman Mar 17, 2026
a4ef143
Merge pull request #85514 from Expensify/monil-fixFlakyTest8
MonilBhavsar Mar 17, 2026
d8fb991
Merge pull request #81905 from callstack-internal/negative-values-for…
lakchote Mar 17, 2026
5cbf5fd
Merge pull request #85520 from Expensify/revert-84923-@adamgrzybowski…
cristipaval Mar 17, 2026
bc7699f
Update version to 9.3.38-4
OSBotify Mar 17, 2026
693ba15
Update Mobile-Expensify submodule version to 9.3.38-4
OSBotify Mar 17, 2026
38da420
fix: replace getDraggableItemFlags with typed callback props
TaduJR Mar 17, 2026
1b4af9f
Update version to 9.3.39-0
OSBotify Mar 17, 2026
354a5aa
Update Mobile-Expensify submodule version to 9.3.39-0
OSBotify Mar 17, 2026
db1bcf5
refactor: remove Enter/Space shortcuts from useListKeyboardNav — hand…
TaduJR Mar 17, 2026
813dd06
chore: CI restart
TaduJR Mar 17, 2026
c7c662d
Merge pull request #78869 from TaduJR/fix-Arrow-key-navigation-not-wo…
JS00001 Mar 17, 2026
74dab13
Merge pull request #84893 from Expensify/snyk-fix-3315450c9ff3b0cfaf0…
mjasikowski Mar 17, 2026
d7473e4
Merge pull request #85323 from daledah/fix/82944
Gonals Mar 17, 2026
0650fb3
Merge pull request #85237 from Expensify/nikki-fix-job-title-clear
Gonals Mar 17, 2026
a620926
Use styles.fullScreenLoading instead of inline styles
MelvinBot Mar 17, 2026
a668c6a
Merge pull request #83648 from Expensify/claude-migratePersonalWorksp…
garrettmknight Mar 17, 2026
9213317
Restore reasonAttributes prop on ActivityIndicator
MelvinBot Mar 17, 2026
753f7f2
Merge branch 'Expensify:main' into react-patterns/refactor-fab-popove…
adhorodyski Mar 17, 2026
698b6f6
Merge pull request #69549 from Expensify/neil-fix-distance
arosiclair Mar 17, 2026
a57e04d
Merge pull request #82977 from daledah/follow-up/70951
arosiclair Mar 17, 2026
b359de5
Merge exfy/main into react-patterns/refactor-fab-popover-decomposition
adhorodyski Mar 17, 2026
85ed362
Merge branch 'react-patterns/refactor-fab-popover-decomposition' of h…
adhorodyski Mar 17, 2026
c7a55bd
add unit tests and small comments
narefyev91 Mar 17, 2026
07b350c
composer
JS00001 Mar 17, 2026
22c6118
dont parse text where its not needed
JS00001 Mar 17, 2026
9849067
Merge pull request #84404 from Expensify/georgia-grandfathered
Gonals Mar 17, 2026
c97d0c4
Merge pull request #85427 from software-mansion-labs/home-page/quick-…
grgia Mar 17, 2026
4fb0b95
Merge pull request #84596 from Expensify/claude-fixReimbursableToggle…
Gonals Mar 17, 2026
0388cea
fix eslint
narefyev91 Mar 17, 2026
af79779
Merge pull request #84461 from Eskalifer1/fix/83885
flodnv Mar 17, 2026
4b89dba
add logic to containsOnlyEmojis as well
JS00001 Mar 17, 2026
e149717
Merge pull request #85544 from Expensify/jsenyitko-composer
JS00001 Mar 17, 2026
f635b6e
adjust heic conversion after pr comments
rinej Mar 17, 2026
c56328f
Merge pull request #81388 from marufsharifi/fix/reports-split-not-rev…
dangrous Mar 17, 2026
66f052f
Merge exfy/main into react-patterns/refactor-fab-popover-decomposition
adhorodyski Mar 17, 2026
3698cf2
update expensify common ver
JS00001 Mar 17, 2026
8c7362d
Revert "[Onyx audit] Migrate keys to RAM-only - part 1/2"
mountiny Mar 17, 2026
c78bd21
Merge pull request #85555 from Expensify/revert-82309-JKobrynski/feat…
mountiny Mar 17, 2026
0948729
remove ^
JS00001 Mar 17, 2026
1901012
Update version to 9.3.39-1
OSBotify Mar 17, 2026
313d375
Update Mobile-Expensify submodule version to 9.3.39-1
OSBotify Mar 17, 2026
3bf3971
Merge pull request #85554 from Expensify/jsenyitko-update-deps-for-co…
JS00001 Mar 17, 2026
a60e7e7
fix: reset error message when split expenses change
kubabutkiewicz Mar 17, 2026
e35036c
Update src/pages/workspace/workflows/WorkspaceWorkflowsPayerPage.tsx
narefyev91 Mar 17, 2026
6b0c1e9
Update src/pages/workspace/workflows/WorkspaceWorkflowsPayerPage.tsx
narefyev91 Mar 17, 2026
fc59fc8
Update src/pages/workspace/workflows/WorkspaceWorkflowsPayerPage.tsx
narefyev91 Mar 17, 2026
5d8addf
fix: search footer showing bash.00 when groupAmount is unavailable
JakubKorytko Mar 17, 2026
e41414d
Merge pull request #83660 from nkdengineer/fix/83162
grgia Mar 17, 2026
f4afbe2
Merge pull request #85500 from ikevin127/ikevin127-removeTravelTesting
blimpich Mar 17, 2026
524d903
Merge pull request #84501 from allgandalf/rohansasne/phase3-remove-fl…
blimpich Mar 17, 2026
858f99c
Merge pull request #79760 from callstack-internal/change-payer-for-share
NikkiWines Mar 17, 2026
64cdcae
fix: update keyboard type handling in PercentageForm and SplitPercent…
kubabutkiewicz Mar 17, 2026
ce848a5
Restore useful code comments removed during FAB decomposition
adhorodyski Mar 17, 2026
2748220
Fix double vertical padding on FAB popover menu (wide layout)
adhorodyski Mar 17, 2026
9fb598e
Fix: Expense auto enters selection mode after clicking Move to report
nyomanjyotisa Mar 17, 2026
ce9f79d
Fix Quick Action position — move to bottom of FAB menu
adhorodyski Mar 17, 2026
8c98354
Merge pull request #85290 from Expensify/claude-fixNestedCardSettings…
carlosmiceli Mar 17, 2026
9118512
Merge pull request #84626 from Expensify/claude-removeDuplicateStatus…
carlosmiceli Mar 17, 2026
bf985c2
Merge pull request #83047 from paulnjs/paulnjs-fix/80150
mollfpr Mar 17, 2026
d3edd73
Merge branch 'Expensify:main' into react-patterns/refactor-fab-popove…
adhorodyski Mar 17, 2026
fbddade
Merge pull request #85444 from Expensify/claude-removeReturnKeyTypeFo…
carlosmiceli Mar 17, 2026
5814d5b
Merge pull request #84753 from bernhardoj/chore/66456-remove-onyx-con…
inimaga Mar 17, 2026
7a385a5
lint fix
nyomanjyotisa Mar 17, 2026
50f6f92
Merge remote-tracking branch 'exfy/main' into react-patterns/refactor…
adhorodyski Mar 17, 2026
83cded2
Pass userBillingGraceEndPeriods from useOnyx in decomposed FAB compon…
adhorodyski Mar 17, 2026
926a075
Merge pull request #84313 from fedirjh/sync-card-feed-on-demand
carlosmiceli Mar 17, 2026
d114e68
Merge pull request #85289 from nyomanjyotisa/issue-84790
carlosmiceli Mar 17, 2026
f277aec
Merge pull request #84413 from callstack-internal/perf/onyx-selectors…
marcaaron Mar 17, 2026
c785587
Merge pull request #85166 from Krishna2323/krishna2323/issue/76958
marcaaron Mar 17, 2026
a910e49
Merge pull request #85517 from Expensify/claude-useValidLoadingIndica…
Julesssss Mar 17, 2026
9e9dc06
Merge pull request #85561 from callstack-internal/fix-clearing-the-error
lakchote Mar 17, 2026
750e56f
Update version to 9.3.39-2
OSBotify Mar 17, 2026
0759fcc
Update Mobile-Expensify submodule version to 9.3.39-2
OSBotify Mar 17, 2026
f74fdc0
Merge pull request #85566 from software-mansion-labs/korytko/perf/fix…
mountiny Mar 17, 2026
c8e7645
Update version to 9.3.39-3
OSBotify Mar 17, 2026
44f0c17
Update Mobile-Expensify submodule version to 9.3.39-3
OSBotify Mar 17, 2026
7ff635e
Added test cases
abbasifaizan70 Mar 17, 2026
8b92c5e
Merge branch '82322' of https://github.com/abbasifaizan70/Expensify i…
abbasifaizan70 Mar 17, 2026
06dc3d7
Fixed typescript issues
abbasifaizan70 Mar 17, 2026
1d5e72e
Rename isConciergeChat to isAgentZeroChat and remove unnecessary useMemo
marcochavezf Mar 17, 2026
4e8fcf6
Merge pull request #83299 from callstack-internal/react-patterns/refa…
mountiny Mar 17, 2026
b01bf33
Merge pull request #85231 from callstack-internal/fix/heic-context-lost
mountiny Mar 17, 2026
f5cee7a
Merge pull request #85067 from kacper-mikolajczak/fix-compiler-health…
mountiny Mar 17, 2026
b12722f
Merge pull request #84823 from abbasifaizan70/82322
mountiny Mar 17, 2026
572af3b
Merge pull request #85248 from callstack-internal/VickyStash/refactor…
mountiny Mar 17, 2026
88ee5ad
Merge pull request #85327 from Expensify/marco/610150-admins-room-thi…
carlosmiceli Mar 17, 2026
fd9c471
Merge pull request #85271 from Expensify/claude-helpSiteGovernanceRul…
VictoriaExpensify Mar 17, 2026
e9cb70c
Merge pull request #85515 from Expensify/claude-useActivityIndicatorI…
Julesssss Mar 17, 2026
36016bf
Merge branch 'main' into issue-85537
nyomanjyotisa Mar 18, 2026
517ca14
Merge pull request #85576 from nyomanjyotisa/issue-85537
aldo-expensify Mar 18, 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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .claude/commands/review-code-pr.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
allowed-tools: Bash(gh pr diff:*),Bash(gh pr view:*)
allowed-tools: Bash(gh pr diff:*),Bash(gh pr view:*),Bash(check-compiler.sh:*)
description: Review a code contribution pull request
---

Expand Down
20 changes: 20 additions & 0 deletions .claude/scripts/check-compiler.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash

# Secure proxy script to run React Compiler compliance check on a single file.
# Validates the filepath before passing it to the underlying npm script.
set -eu

if [[ $# -lt 1 ]]; then
echo "Usage: $0 <filepath>" >&2
exit 1
fi

readonly FILEPATH="$1"

# Strict filepath validation - reject shell metacharacters
if ! [[ "$FILEPATH" =~ ^[a-zA-Z0-9_./@-]+$ ]]; then
echo "Error: Invalid filepath (contains disallowed characters)" >&2
exit 1
fi

npm run react-compiler-compliance-check -- check "$FILEPATH"
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ function Avatar({source, size}: AvatarProps) {
Before flagging, verify that the file actually compiles with React Compiler:

```bash
npx react-compiler-healthcheck --src "<filepath>" --verbose
check-compiler.sh <filepath>
```

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.
Expand Down
73 changes: 73 additions & 0 deletions .github/workflows/cherryPick.yml
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,79 @@ jobs:
git push origin ${{ inputs.TARGET }}
fi

- name: Find deploy workflow run
# Also runs for version-bump-only CPs where HAS_CONFLICTS is unset
if: ${{ steps.cherryPick.outputs.HAS_CONFLICTS != 'true' }}
id: findDeployRun
run: |
PUSH_SHA=$(git rev-parse HEAD)
echo "Push SHA: $PUSH_SHA"

DEPLOY_RUN_URL=""
for i in 1 2 3 4 5 6; do
echo "Polling for deploy run (attempt $i)..."
sleep 10
DEPLOY_RUN_URL=$(gh api \
"repos/${{ github.repository }}/actions/workflows/deploy.yml/runs?head_sha=$PUSH_SHA&per_page=1" \
--jq '.workflow_runs[0].html_url // empty' 2>/dev/null || true)
if [ -n "$DEPLOY_RUN_URL" ]; then
echo "Found deploy run: $DEPLOY_RUN_URL"
break
fi
done

FALLBACK_URL="https://github.com/${{ github.repository }}/actions/workflows/deploy.yml"
if [ -z "$DEPLOY_RUN_URL" ]; then
echo "::warning::Could not find deploy workflow run for SHA $PUSH_SHA"
{
echo "DEPLOY_RUN_FOUND=false"
echo "DEPLOY_RUN_URL=$FALLBACK_URL"
echo "DEPLOY_RUN_MESSAGE=⚠️ Could not locate deploy run — check $FALLBACK_URL"
} >> "$GITHUB_OUTPUT"
else
{
echo "DEPLOY_RUN_FOUND=true"
echo "DEPLOY_RUN_URL=$DEPLOY_RUN_URL"
echo "DEPLOY_RUN_MESSAGE=$DEPLOY_RUN_URL"
} >> "$GITHUB_OUTPUT"
fi
env:
GITHUB_TOKEN: ${{ github.token }}

- name: Announce successful CP in #deployer
# Also runs for version-bump-only CPs where HAS_CONFLICTS is unset
if: ${{ steps.cherryPick.outputs.HAS_CONFLICTS != 'true' }}
uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e
with:
status: custom
custom_payload: |
{
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 }}`
}]
}
env:
GITHUB_TOKEN: ${{ github.token }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}

- name: Write workflow summary
# Also runs for version-bump-only CPs where HAS_CONFLICTS is unset
if: ${{ steps.cherryPick.outputs.HAS_CONFLICTS != 'true' }}
run: |
{
echo "## Cherry-pick successful"
echo ""
echo "**Target:** \`${{ inputs.TARGET }}\`"
echo "**PR:** ${{ inputs.PULL_REQUEST_URL || 'N/A (version bump only)' }}"
if [[ "${{ steps.findDeployRun.outputs.DEPLOY_RUN_FOUND }}" == "true" ]]; then
echo "**Deploy workflow:** ${{ steps.findDeployRun.outputs.DEPLOY_RUN_URL }}"
else
echo "**Deploy workflow:** :warning: Could not locate deploy run — check [${{ inputs.TARGET }} deploy runs](${{ steps.findDeployRun.outputs.DEPLOY_RUN_URL }})"
fi
} >> "$GITHUB_STEP_SUMMARY"

- name: Create Pull Request to manually finish CP
if: steps.cherryPick.outputs.HAS_CONFLICTS == 'true'
id: createPullRequest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/claude-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
prompt: "/review-code-pr REPO: ${{ github.repository }} PR_NUMBER: ${{ github.event.pull_request.number }}"
claude_args: |
--model claude-opus-4-6
--allowedTools "Task,Glob,Grep,Read,Bash(gh pr diff:*),Bash(gh pr view:*)" --json-schema '${{ steps.schema.outputs.json }}'
--allowedTools "Task,Glob,Grep,Read,Bash(gh pr diff:*),Bash(gh pr view:*),Bash(check-compiler.sh:*)" --json-schema '${{ steps.schema.outputs.json }}'

- name: Post code review results
if: steps.code-review.outcome == 'success' && steps.filter.outputs.code == 'true'
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 1009033709
versionName "9.3.37-9"
versionCode 1009033903
versionName "9.3.39-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
1 change: 1 addition & 0 deletions assets/images/car-plus.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/images/document-plus.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion assets/images/envelope-open-star.svg

This file was deleted.

2 changes: 2 additions & 0 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,8 @@
"setuptools",
"shareeEmail",
"Sharees",
"sharee",
"sharees",
"Sharons",
"shellcheck",
"shellenv",
Expand Down
2 changes: 2 additions & 0 deletions docs/HELPSITE_NAMING_CONVENTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ This document governs UI language conventions. It does not define article struct

docs/HELP_AUTHORING_GUIDELINES.md

Note: All article headings (# and ##) must follow the task-based heading rules in HELP_AUTHORING_GUIDELINES.md Section 2, except for `# FAQ` which is exempt. This includes section headings that reference UI features — they must still be task-based, not just feature labels.

---

# Core UI Referencing Rules
Expand Down
32 changes: 26 additions & 6 deletions docs/HELP_AUTHORING_GUIDELINES.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,14 @@ If multiple workflows are detected → split into multiple articles.
- Setup
- Options
- Step 1
- Noun-only or topic-only headings that describe a category rather than a task
- Platform-only labels used as headings (e.g., "iPhone", "Android", "Desktop", "Web")
- Any heading that does not describe an action the user takes or a question the user has

## Requirements

- All headings must be:
- Task-based
- All headings must be (except `# FAQ`, which is exempt from task-based rules):
- Task-based — must describe what the user will do or learn. Start with an action verb or question word (How, What, Where, Who, Why, When)
- Searchable
- Explicit
- Feature-specific
Expand All @@ -48,6 +51,15 @@ If multiple workflows are detected → split into multiple articles.
# Who can connect a business bank account in Expensify
## Where to enable ACH reimbursements in a Workspace
## How to troubleshoot bank connection errors in Expensify
## How to enable Expensify Card notifications on iPhone

**Invalid → Corrected Examples**

- ❌ `## Transaction decline notifications` → ✅ `## How to understand why your Expensify Card transaction was declined`
- ❌ `## iPhone` → ✅ `## How to enable notifications on iPhone`
- ❌ `## Suspected fraud notifications` → ✅ `## What to do when you receive a fraud alert`
- ❌ `## Banking and settlement notifications` → ✅ `## How banking and settlement alerts work for admins`
- ❌ `## Card lifecycle notifications` → ✅ `## What card lifecycle notifications you'll receive`

---

Expand All @@ -72,11 +84,15 @@ Metadata must reflect real search queries.

Each article must include:
- YAML metadata
- One primary # heading
- Task-based ## sections
- Exactly one # heading (the article title). No other # headings are allowed except # FAQ
- Task-based ## sections for all content below the title
- Sequential numbered steps (if procedural)
- An FAQ section (if needed)

Do not use multiple # headings to organize an article into major sections. If content feels like it needs its own # heading, either:
- Demote it to ## under the single # title, or
- Split it into a separate article (per Section 1: one workflow per article)

If including an FAQ section, it must comply with:
/docs/HELPSITE_NAMING_CONVENTIONS.md

Expand Down Expand Up @@ -224,8 +240,12 @@ Prioritize screenshots for:
# 9. Pre-Publish Validation Checklist

Before outputting an article, confirm:
- Only # and ## used
- No generic headings
- Exactly one # heading (the article title), plus optional # FAQ — no other # headings
- Only ## used for all content sections (no ### or deeper)
- Every ## heading starts with an action verb or question word (How, What, Where, Who, Why, When)
- `# FAQ` is exempt from task-based heading rules
- No noun-only, topic-only, or platform-only headings
- No generic headings (Overview, Introduction, Notes, Setup, Options, Step 1)
- Feature names match UI
- Metadata aligns with search intent
- Navigation included (if applicable)
Expand Down
2 changes: 1 addition & 1 deletion docs/articles/expensify-classic/expenses/Expense-Types.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Use filters to narrow down the data:
2. Adjust the filters at the top of the page:
- **Date Range** – Select a specific time frame.
- **Merchant Name** – Find expenses from a particular vendor (partial searches work).
- **Workspace** – View expenses for a specific Group or Individual Workspace.
- **Workspace** – View expenses for a specific workspace.
- **Categories** – Filter by category to refine your search.
- **Tags** – Locate expenses based on assigned tags.
- **Submitters** – Find expenses by employee or vendor.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,14 @@ keywords: [Expensify Classic, workspace plan, subscription]
---
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing required metadata field: The YAML frontmatter is missing the internalScope field, which is mandatory per HELP_AUTHORING_GUIDELINES.md Section 3 and TEMPLATE.md.



Expensify offers several plans based on your needs: **Track, Submit, Collect, Control,** and **Free**. Your choice depends on whether you manage expenses individually, for a group, or for a company. You may need to upgrade if you hire employees who need access to a **Group Workspace** or require features exclusive to paid plans.
Expensify offers several plans based on your needs: **Collect, Control,** and **Free**. You may need to upgrade if you hire employees who need access to your workspace or require features exclusive to paid plans.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Structure violation: Per HELP_AUTHORING_GUIDELINES.md Section 4, each article must include exactly one # heading (the article title). This file has content before any # heading -- the article title should appear as a # heading immediately after the YAML frontmatter, before the introductory paragraph.


---

# Change a Subscription on an Individual Plan
# Changing Your Subscription
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple # headings violation: Per HELP_AUTHORING_GUIDELINES.md Section 4, an article may have exactly one # heading (the article title) plus an optional # FAQ. This file uses # Changing Your Subscription (line 12), # Downgrading to a Free Account (line 43), and # FAQ (line 63) -- that is three # headings. Demote # Changing Your Subscription and # Downgrading to a Free Account to ## headings, and keep the article's single # title matching the YAML title field.


**Web:**
1. Go to **Settings > Workspaces > Individual > [Workspace Name]**.
2. Click **Overview** and select **Switch** under your desired plan.

**Mobile:**
1. Open the Expensify app.
2. Tap the **hamburger menu** (three lines) on the top left.
3. Tap **Settings**.
4. Tap **View All** under your Workspace.
5. Select the Workspace under the **Individual** tab.
6. Tap **Current Plan**.
7. Tap **Switch** to change plans.

## Upgrade to a Group Workspace
1. Go to **Settings > Workspaces > Group**.
2. Select a **Collect** or **Control** plan.

---

# Changing a Subscription on a Group Plan

**Web:**
1. Go to **Settings > Workspaces > Group > [Your Group Workspace]**.
1. Go to **Settings > Workspaces > [Your Workspace]**.
2. Click **Overview** and select **Switch** under your desired plan.

**Mobile:**
Expand All @@ -42,48 +21,32 @@ Expensify offers several plans based on your needs: **Track, Submit, Collect, Co

---

## Adjust Subscription Size
1. Go to **Settings > Workspaces > Group > Subscription**.
## Adjust Annual Subscription Size
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heading rule violation: Per HELP_AUTHORING_GUIDELINES.md Section 2, all ## headings must be task-based and start with an action verb or question word (How, What, Where, Who, Why, When). "Adjust Annual Subscription Size" is a noun-phrase heading.

Consider: ## How to adjust your annual subscription size

1. Go to **Settings > Workspaces > Subscription**.
2. Enter the desired number in the **Subscription size** field.
- If left blank, your subscription size will be set automatically:
- **New Workspaces**: Based on active users in the first month.
- **Existing Workspaces Switching to Annual**: Based on the last month's active users.

## Auto-Increase Subscription Size
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heading rule violation: Per HELP_AUTHORING_GUIDELINES.md Section 2, all ## headings must be task-based and start with an action verb or question word. "Auto-Increase Subscription Size" is a noun-phrase heading.

Consider: ## How to auto-increase your subscription size

1. Go to **Settings > Workspaces > Group > Subscription**.
2. Toggle **Auto-increase annual seats**.
1. Go to **Settings > Workspaces > Subscription**.
2. Toggle **Auto Increase Subscription Size**.
3. When enabled, your subscription size will adjust automatically based on usage, triggering a new 12-month commitment for the updated size.

## Auto-Renew Subscription
1. Go to **Settings > Workspaces > Group > Subscription**.
2. Toggle **Auto-renew** off before your current subscription ends if you do not want it to renew.
- If **Auto-renew** is disabled, your final bill at the annual rate will be issued on the date listed under **Subscriptions**.

---

# Downgrading to a Free Account from an Individual Plan

**Web:**
1. Log in via a web browser.
2. Go to **Settings > Workspaces > Individual > Subscription**.
3. Click **Cancel Subscription**.
- **Note**: The subscription is prepaid for 30 days of unlimited **SmartScanning**. No refunds are issued, but you retain access until the period ends.

**App Store (iOS Users):**
1. Go to the **App Store**.
2. Tap your **Apple ID** > **Subscriptions**.
3. Cancel your Expensify subscription.
- **Note**: This cannot be done within Expensify. Downgrading to a free account must happen from the App Store.
1. Go to **Settings > Workspaces > Subscription**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heading rule violation: Per HELP_AUTHORING_GUIDELINES.md Section 2, all ## headings must be task-based and start with an action verb or question word. "Auto-Renew Subscription" is a noun-phrase heading.

Consider: ## How to manage auto-renewal for your subscription

2. Toggle **Auto Renew** off before your current subscription ends if you do not want it to renew.
- If **Auto Renew** is disabled, your final bill at the annual rate will be issued on the date listed under **Subscriptions**.

---

# Downgrading to a Free Account from a Group Plan
# Downgrading to a Free Account
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple # headings violation: Per HELP_AUTHORING_GUIDELINES.md Section 4, no # headings are allowed other than the article title and # FAQ. This should be demoted to ## and made task-based.

Consider: ## How to downgrade to a free account


## Pay-Per-Use Plan
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heading rule violation: Per HELP_AUTHORING_GUIDELINES.md Section 2, all ## headings must be task-based and start with an action verb or question word. "Pay-Per-Use Plan" is a noun-only heading.

Consider: ## How to downgrade from a pay-per-use plan

1. Go to **Settings > Workspaces > Group**.
1. Go to **Settings > Workspaces**.
2. Click the **cog icon** next to your Workspace name.
3. Select **Delete**.
- **Note**: Deleting a Workspace removes its settings and members but does not delete their Expensify accounts.
- **Note**: Only the Billing Owner can delete a Workspace. Deleting a Workspace removes its settings and members but does not delete members' Expensify accounts.
- If any members were active that month (submitted, approved, or edited reports), you will be billed for their usage.

## Annual Subscription
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heading rule violation: Per HELP_AUTHORING_GUIDELINES.md Section 2, all ## headings must be task-based and start with an action verb or question word. "Annual Subscription" is a noun-only heading.

Consider: ## How to downgrade from an annual subscription

Expand All @@ -99,11 +62,11 @@ Once downgraded, your Workspace will be deleted, and a refund line item will app

# FAQ

## Will I be charged for a monthly subscription even if I don't use SmartScans?
## Will I be charged for my subscription even if I don't use SmartScans?

Yes, monthly subscriptions are prepaid and not usage-based, so you will be charged regardless of activity.
Yes, Collect and Control subscriptions are prepaid and not usage-based, so you will be charged regardless of activity.

## I'm in a Group Workspace. Do I need the monthly subscription too?
## I'm in a workspace. Do I need my own subscription too?

No, Group Workspace members already have unlimited **SmartScans**. However, you can keep a subscription for personal use if you leave your company's Workspace.
No, workspace members already have unlimited **SmartScans**. However, you can keep a subscription for personal use if you leave your company's workspace.

Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,7 @@ The fund from your Personal Karma is determined by the expense's MCC (Merchant C

## Setting Up Personal Karma Donations
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heading rule violation: Per HELP_AUTHORING_GUIDELINES.md Section 2, all ## headings must be task-based and start with an action verb or question word (How, What, Where, Who, Why, When). "Setting Up" is a gerund, not an imperative verb.

Consider: ## How to set up Personal Karma donations


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test probe

You can enable Personal Karma donations from your personal workspace settings.

1. [Sign in](www.expensify.com) to your web account.
2. Go to **Settings > Workspace > Individual**.
3. Under the **Subscription** section, enable Karma donations.

![Settings > Workspaces > Individual workspace > enable Personal Karma in settings](https://help.expensify.com/assets/images/ExpensifyHelp_OldDot_Karma_Individual.png){:width="100%"}
Personal Karma is now managed in New Expensify. To enable or disable Personal Karma donations, see the [Personal Karma](https://help.expensify.com/articles/new-expensify/settings/Personal-Karma) help page.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cross-linking violation: Per HELP_AUTHORING_GUIDELINES.md Section 7 (Link Formatting), links to other HelpDot articles must use relative links, not full URLs.

Suggested change
Personal Karma is now managed in New Expensify. To enable or disable Personal Karma donations, see the [Personal Karma](https://help.expensify.com/articles/new-expensify/settings/Personal-Karma) help page.
Personal Karma is now managed in New Expensify. To enable or disable Personal Karma donations, see the [Personal Karma](/articles/new-expensify/settings/Personal-Karma) help page.


---

Expand All @@ -40,11 +34,11 @@ The fund to which your Corporate Karma goes is determined by the expense's MCC (

## Setting Up Corporate Karma Donations

As a [workspace billing owner](https://help.expensify.com/articles/expensify-classic/workspaces/Assign-billing-owner-and-payment-account), you can enable Corporate Karma from the group workspace settings.
As a [workspace billing owner](https://help.expensify.com/articles/expensify-classic/workspaces/Assign-billing-owner-and-payment-account), you can enable Corporate Karma from your workspace settings.

1. [Sign in](www.expensify.com) to your web account.
2. Go to **Settings > Workspace > Group**.
3. Under the **Subscription** section, enable Karma donations.
1. [Sign in](https://www.expensify.com) to your web account.
2. Go to **Settings > Workspace > [Your Workspace Name] > Subscription**.
3. Enable Karma donations.

![Settings > Workspaces > Group > enable Corporate Karma in subscription settings](https://help.expensify.com/assets/images/ExpensifyHelp_OldDot_Karma_Group.png){:width="100%"}

Loading
Loading