Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
848 commits
Select commit Hold shift + click to select a range
e9c89a9
Merge pull request #85054 from Expensify/revert-84952-claude-fixUndec…
mountiny Mar 12, 2026
8136511
Revert "fix: GBR appears when there is report field error"
mountiny Mar 12, 2026
f592d64
Merge branch 'main' into chaitanya/394853-workspace-address-cleanup-app
c3024 Mar 12, 2026
0dad05f
Merge pull request #85056 from Expensify/revert-83424-fix/82676
mountiny Mar 12, 2026
1d1a0bc
Update version to 9.3.36-1
OSBotify Mar 12, 2026
9b92d31
Update Mobile-Expensify submodule version to 9.3.36-1
OSBotify Mar 12, 2026
f41a26a
Update version to 9.3.36-2
OSBotify Mar 12, 2026
6ed158a
Update Mobile-Expensify submodule version to 9.3.36-2
OSBotify Mar 12, 2026
b8ab9c0
Merge pull request #83553 from software-mansion-labs/jnowakow/fix-log…
grgia Mar 12, 2026
102203d
Update version to 9.3.36-3
OSBotify Mar 12, 2026
91c9f31
Update Mobile-Expensify submodule version to 9.3.36-3
OSBotify Mar 12, 2026
76c58eb
Update version to 9.3.36-4
OSBotify Mar 12, 2026
dbee60a
Update Mobile-Expensify submodule version to 9.3.36-4
OSBotify Mar 12, 2026
4678cab
Merge pull request #83792 from linhvovan29546/fix/82146-app-crash
rlinoz Mar 12, 2026
9f19545
Merge pull request #84873 from callstack-internal/sentry/discard-sent…
rlinoz Mar 12, 2026
310a825
Merge branch 'main' into chaitanya/394853-workspace-address-cleanup-app
c3024 Mar 12, 2026
7e6f5ab
Merge branch 'main' into refactor/66418-make-changeMoneyRequestHoldSt…
linhvovan29546 Mar 12, 2026
e9ad6e5
Update version to 9.3.36-5
OSBotify Mar 12, 2026
d49f9b0
Update Mobile-Expensify submodule version to 9.3.36-5
OSBotify Mar 12, 2026
7ec6c9f
Apply Prettier formatting to ValidateAccount component
adamgrzybowski Mar 12, 2026
1663d33
fix: remove redundant reasonAttributes that are always constant when …
BartekObudzinski Mar 12, 2026
96e72db
Merge remote-tracking branch 'origin/main' into fix/activity-indicato…
BartekObudzinski Mar 12, 2026
81ae394
Revert "Merge pull request #84552 from Expensify/revert-84397-revert-…
cristipaval Mar 12, 2026
75c3fd7
resolve conflict
nkdengineer Mar 12, 2026
d78f143
Merge pull request #84716 from c3024/remove-unused-isCheckingDomain-p…
NikkiWines Mar 12, 2026
4bcba37
Merge pull request #85066 from Expensify/revert-84552-sentry-scan-sho…
cristipaval Mar 12, 2026
03d6c3f
Merge pull request #84158 from software-mansion-labs/collectioneur/dy…
mjasikowski Mar 12, 2026
f533fb4
Set sign-in page footer and welcome headings to aria-level 2
MelvinBot Mar 12, 2026
c57c734
Update version to 9.3.36-6
OSBotify Mar 12, 2026
4250c25
Update Mobile-Expensify submodule version to 9.3.36-6
OSBotify Mar 12, 2026
0e75f00
Merge pull request #84651 from Expensify/claude-reduceDesktopLHNRowHe…
cristipaval Mar 12, 2026
872c510
Merge pull request #84835 from bernhardoj/chore/66574-refactor-policy…
cristipaval Mar 12, 2026
6f4d45e
Merge pull request #83704 from software-mansion-labs/add-tooltip-for-…
puneetlath Mar 12, 2026
556c257
Merge pull request #82764 from callstack-internal/VickyStash/refactor…
mountiny Mar 12, 2026
b208c04
Gate validate account widget on explicit false to avoid showing durin…
adamgrzybowski Mar 12, 2026
5744cc1
Replace aria-hidden with accessible={false} on container View
MelvinBot Mar 12, 2026
83201c8
Merge remote-tracking branch 'upstream/main' into fix/activity-indica…
BartekObudzinski Mar 12, 2026
d8c3569
update badge style
aimane-chnaif Mar 12, 2026
8d9061c
Merge branch 'Expensify:main' into feature-84764
aimane-chnaif Mar 12, 2026
85ca799
Merge pull request #84844 from bernhardoj/fix/update-input-when-draft…
arosiclair Mar 12, 2026
d0b7d56
Merge pull request #84979 from Expensify/revert-81897-btkcodedev/8150…
luacmartins Mar 12, 2026
c8be9a4
Merge remote-tracking branch 'upstream/main' into 79929/IOURequestSte…
samranahm Mar 12, 2026
acadc0e
Revert "Enable platform tree shaking in hermes bundle"
luacmartins Mar 12, 2026
d8795ca
Merge pull request #84303 from rohit9625/fix/log-soft-exception
mountiny Mar 12, 2026
2c0a2cb
Merge pull request #85099 from Expensify/revert-83359-cleanup-platfor…
mountiny Mar 12, 2026
7ca77e1
Merge branch 'main' into valforte/testRBRCopilotApproveButError
Valforte Mar 12, 2026
3251d94
Merge branch 'main' into fix/84752
nkdengineer Mar 12, 2026
fa68322
Merge pull request #84896 from Expensify/valforte/testRBRCopilotAppro…
dangrous Mar 12, 2026
92b3427
add translations
aimane-chnaif Mar 12, 2026
f3028f3
Merge branch 'main' into fix/66380-part-6
dukenv0307 Mar 12, 2026
3a6b1b2
Merge branch 'main' into follow/74845
daledah Mar 12, 2026
5d92465
Add useDocumentTitle to settings sub-pages
MelvinBot Mar 12, 2026
6a31313
Merge pull request #84698 from dukenv0307/fix/66380-part-6
tgolen Mar 12, 2026
f75b568
Fix: Sort imports alphabetically to pass Prettier check
MelvinBot Mar 12, 2026
c3650a9
Merge pull request #85041 from Krishna2323/krishna2323/issue/85040
luacmartins Mar 12, 2026
6db09f2
Merge pull request #84845 from nkdengineer/fix/84752
lakchote Mar 12, 2026
58253ec
Merge pull request #83346 from daledah/follow-up/80415
MarioExpensify Mar 12, 2026
400e0ea
fix: conflicts
truph01 Mar 12, 2026
0575f7d
fix: conflicts
truph01 Mar 12, 2026
c987178
fix: conflicts
truph01 Mar 12, 2026
221147f
Merge pull request #84981 from Expensify/francois-license-margin
Julesssss Mar 12, 2026
b4fe2d6
improve accessibility labels for badge
aimane-chnaif Mar 12, 2026
72917fe
Merge pull request #82376 from DylanDylann/release-1-set-pin
chuckdries Mar 12, 2026
fcb467b
Fix Reimbursable row appearing redundantly when tax or billable trigg…
MelvinBot Mar 12, 2026
1d3bbe5
Fix: Remove useFocusEffect cleanup to fix title race condition in spl…
MelvinBot Mar 12, 2026
18e5d32
added translations
jakubkalinski0 Mar 12, 2026
85516e7
revert badge wrapper style
aimane-chnaif Mar 12, 2026
c566fe7
Update version to 9.3.36-7
OSBotify Mar 12, 2026
d7a9337
Update Mobile-Expensify submodule version to 9.3.36-7
OSBotify Mar 12, 2026
edd1bb0
Update version to 9.3.36-8
OSBotify Mar 12, 2026
5930402
Update Mobile-Expensify submodule version to 9.3.36-8
OSBotify Mar 12, 2026
d636765
Apply suggestions from code review
stephanieelliott Mar 12, 2026
df74c55
Update version to 9.3.36-9
OSBotify Mar 12, 2026
6d9e85f
Update Mobile-Expensify submodule version to 9.3.36-9
OSBotify Mar 12, 2026
729c537
Merge branch 'main' into jakubkalinski0/Odometer_Add_merged_image_flow
jakubkalinski0 Mar 12, 2026
9f1f25c
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
kubabutkiewicz Mar 12, 2026
21c4a19
Add aria-hidden to container alongside accessible={false}
MelvinBot Mar 12, 2026
6133407
Merge pull request #84798 from Expensify/claude-useValidLoadingIndica…
stitesExpensify Mar 12, 2026
6b37a8c
Use !!nonReimbursableSpend for outOfPocket row consistency
MelvinBot Mar 12, 2026
ba2b812
Merge pull request #83996 from daledah/follow/74845
neil-marcellini Mar 12, 2026
5a809c1
Merge pull request #85074 from Expensify/claude-fixSignInPageHeadingL…
deetergp Mar 12, 2026
84954c6
Fix: Use computed report name for document title instead of raw repor…
MelvinBot Mar 12, 2026
0607d51
Merge pull request #83434 from imgyf/imgyf/82339-update-netsuite-tokens
yuwenmemon Mar 12, 2026
a3ec4e6
Fix: Reorder import to satisfy Prettier formatting
MelvinBot Mar 12, 2026
8c9111d
Merge remote-tracking branch 'origin/main' into claude-hideWizardFrom…
MelvinBot Mar 12, 2026
4d816fa
Add Ai Etiquette document
AndrewGable Mar 12, 2026
0fc2745
Merge pull request #83527 from huult/79515-add-bulk-export-accounting…
arosiclair Mar 12, 2026
b836663
Merge pull request #83801 from marufsharifi/a11y/announce-empty-searc…
yuwenmemon Mar 12, 2026
be374c7
Merge pull request #70643 from bernhardoj/fix/67351-scroll-issue-on-w…
tylerkaraszewski Mar 12, 2026
538cb29
Merge branch 'main' into marcaaron-fixSentryDurationLogs
marcaaron Mar 12, 2026
2e61474
Use performance.now() for monotonic span duration measurement
marcaaron Mar 12, 2026
75c590e
Merge pull request #85117 from Expensify/claude-fixReimbursableRowVis…
deetergp Mar 12, 2026
841f037
Merge pull request #83354 from MobileMage/fix/81184-receipt-scan-curr…
Valforte Mar 12, 2026
353bad7
Merge pull request #83750 from abbasifaizan70/83598
Valforte Mar 12, 2026
94ffdf6
Revert "83598: Remove TestDrive from sign-up flow"
Valforte Mar 12, 2026
e3f2c20
Merge pull request #85009 from Expensify/marcaaron-fixSentryDurationLogs
marcaaron Mar 12, 2026
6054011
Merge pull request #84729 from software-mansion-labs/@GCyganek/gps/re…
AndrewGable Mar 12, 2026
7b19ec3
Merge pull request #81837 from software-mansion-labs/feat/domain-grou…
mountiny Mar 12, 2026
337c3f6
Merge pull request #85025 from aimane-chnaif/feature-84764
mountiny Mar 12, 2026
bd3dc35
Address review feedback: scope reportAttributes selector and add titl…
MelvinBot Mar 12, 2026
9126eb5
Update version to 9.3.36-10
OSBotify Mar 12, 2026
85a6501
Update Mobile-Expensify submodule version to 9.3.36-10
OSBotify Mar 12, 2026
4bece00
Add null checks for rail PNR journey data in isPnrCancelled
MelvinBot Mar 12, 2026
4520ce4
Merge pull request #84732 from Expensify/claude-addFeesUrlToPublicUrls
mountiny Mar 12, 2026
8f22b5f
Merge main and resolve conflict in DomainMembersPage
MelvinBot Mar 12, 2026
4f38b11
Fix: resolve typecheck error for optional inwardJourney spread in tests
MelvinBot Mar 12, 2026
9aadf40
Fix: Memoize useOnyx selector with useCallback in ReportScreen
MelvinBot Mar 12, 2026
688e47c
Fix: Prettier formatting in ReportScreen.tsx
MelvinBot Mar 12, 2026
9d2fdc5
Remove unused allReportsViolations Onyx connection
mountiny Mar 12, 2026
d2cf4cd
Merge pull request #85145 from Expensify/mountiny-fix-unused-allRepor…
mountiny Mar 12, 2026
b252fcf
Merge remote-tracking branch 'origin/main' into claude-fixRailPnrJour…
MelvinBot Mar 12, 2026
1c35036
Update version to 9.3.37-0
OSBotify Mar 12, 2026
8f773d3
Update Mobile-Expensify submodule version to 9.3.37-0
OSBotify Mar 12, 2026
997c47a
Fix react-native-permissions mock: define RESULTS inline and return P…
MelvinBot Mar 12, 2026
1f8e746
Fix Navigation mock and test timing for unreported distance expense test
MelvinBot Mar 12, 2026
6463086
Merge pull request #84824 from Expensify/claude-hideWizardFromAssisti…
deetergp Mar 12, 2026
707a79b
Merge branch 'Expensify:main' into refactor/66418-make-changeMoneyReq…
linhvovan29546 Mar 13, 2026
b9dddc5
fix: settlement frequency API call when value is not changed
ikevin127 Mar 13, 2026
0f18131
Merge pull request #85129 from Expensify/andrew-ai
roryabraham Mar 13, 2026
bd93b35
fix: allow retry for failed settlement frequency updates
ikevin127 Mar 13, 2026
87d9057
chore: submodule sync
ikevin127 Mar 13, 2026
e9e75f2
Merge branch 'main' into krishna2323/issue/72502-2
Krishna2323 Mar 13, 2026
19ad53a
Merge remote-tracking branch 'upstream/main' into 79929/IOURequestSte…
samranahm Mar 13, 2026
dcaa585
Add files via upload
stephanieelliott Mar 13, 2026
14c0340
Merge main into claude-filterNullCoordinatesFromRecentWaypoints
MelvinBot Mar 13, 2026
84efa81
Update Set-Up-and-Manage-the-Expensify-Card.md
stephanieelliott Mar 13, 2026
1033a36
Retrigger CI pipeline
MelvinBot Mar 13, 2026
3a73daf
Merge pull request #83297 from nkdengineer/fix/76694-v5
roryabraham Mar 13, 2026
df59882
Refactor camera permission handling in MobileWebCameraView
samranahm Mar 13, 2026
a41cc41
Update lint script to reduce max warnings from 334 to 316
samranahm Mar 13, 2026
de8b426
Updated to strip out static prompt and point to governance files inst…
stephanieelliott Mar 13, 2026
06b2ee6
Create fake-article.md
stephanieelliott Mar 13, 2026
1eb82ee
Adjust workflows so they run on my article
stephanieelliott Mar 13, 2026
b734d73
Change test to run on my file
stephanieelliott Mar 13, 2026
a1d90e5
Merge pull request #84724 from callstack-internal/fix/activity-indica…
youssef-lr Mar 13, 2026
6de77fa
Merge pull request #84712 from callstack-internal/fix/add-reason-attr…
youssef-lr Mar 13, 2026
b80fb69
Merge pull request #84711 from callstack-internal/fix/83395-fullscree…
youssef-lr Mar 13, 2026
d15ad5c
Merge pull request #84727 from callstack-internal/fix/add-reason-attr…
youssef-lr Mar 13, 2026
29877d0
add betas test.
Krishna2323 Mar 13, 2026
86789f3
Merge branch 'main' into chaitanya/394853-workspace-address-cleanup-app
c3024 Mar 13, 2026
bdc2e3c
Delete docs/articles/new-expensify/settings/fake-article.md
stephanieelliott Mar 13, 2026
3230fde
Update claude-review.yml
stephanieelliott Mar 13, 2026
4a3bcfd
Update claude-review.yml
stephanieelliott Mar 13, 2026
1071d10
Merge pull request #82196 from truph01/fix/80872
aldo-expensify Mar 13, 2026
c8f4ef7
Merge branch 'main' into chaitanya/394853-workspace-address-cleanup-app
c3024 Mar 13, 2026
cd053be
Merge pull request #83696 from MobileMage/fix/80999-require-company-c…
youssef-lr Mar 13, 2026
0793572
Merge remote-tracking branch 'upstream/main' into fix/83395-fullscree…
BartekObudzinski Mar 13, 2026
1ef9375
Merge remote-tracking branch 'upstream/main' into fix/add-reason-attr…
BartekObudzinski Mar 13, 2026
51068e0
Merge remote-tracking branch 'upstream/main' into sosek108/83395-full…
BartekObudzinski Mar 13, 2026
65af1f5
Merge branch 'Expensify:main' into fix/selection-bug-37447
NJ-2020 Mar 13, 2026
3c0f9b3
Revert "Merge pull request #82764 from callstack-internal/VickyStash/…
VickyStash Mar 13, 2026
261e18e
fix: use connectPolicyToNetSuite for unverified connections with auth…
imgyf Mar 13, 2026
ded20f1
Merge pull request #84719 from callstack-internal/fix/83395-fullscree…
youssef-lr Mar 13, 2026
476b904
Merge pull request #84715 from callstack-internal/sosek108/83395-full…
youssef-lr Mar 13, 2026
61f20ce
Merge pull request #84713 from callstack-internal/fix/add-reason-attr…
youssef-lr Mar 13, 2026
5ab0f25
Merge pull request #85172 from Expensify/helpsite-update-reviewer-bot
mjasikowski Mar 13, 2026
9a3f33a
Merge branch 'main' into follow-up/81243
daledah Mar 13, 2026
04bf9ec
add missing prop
daledah Mar 13, 2026
561a4f7
Merge remote-tracking branch 'origin/main' into claude-filterNullCoor…
MelvinBot Mar 13, 2026
28ff4c1
Merge branch 'Expensify:main' into refactor-setContactMethodAsDefault2
shubham1206agra Mar 13, 2026
7412b7c
Merge branch 'main' into VickyStash/feature/83112-cache-auth-images
VickyStash Mar 13, 2026
829f7e7
fix
collectioneur Mar 13, 2026
1ef4f12
Fix - 'Expense - Report RHP re-renders every time clicking Create exp…
GCyganek Mar 13, 2026
d0c0d6d
delete tabRef and registerTab()
GCyganek Mar 13, 2026
4501809
Fix unable to switch tabs without dismissing keyboard
GCyganek Mar 13, 2026
e657024
Fix lint
GCyganek Mar 13, 2026
5b66827
Merge pull request #85143 from Expensify/claude-fixRailPnrJourneyStat…
rlinoz Mar 13, 2026
efd10c8
Import RESULTS from react-native-permissions/dist/commonjs/results in…
MelvinBot Mar 13, 2026
56fb0a0
Fix: define RESULTS inline to resolve typecheck failure
MelvinBot Mar 13, 2026
463f3e6
Merge pull request #85212 from software-mansion-labs/collectioneur/fi…
mjasikowski Mar 13, 2026
d091a81
Improve the error check
VickyStash Mar 13, 2026
7419245
Merge remote-tracking branch 'origin/main' into claude-filterTimeExpe…
MelvinBot Mar 13, 2026
e77527f
Merge branch 'main' into jakubkalinski0/Odometer_Add_merged_image_flow
jakubkalinski0 Mar 13, 2026
1787f76
Merge pull request #85140 from Expensify/revert-83750-83598
Valforte Mar 13, 2026
4f689c6
Wait for render before asserting
MonilBhavsar Mar 13, 2026
bb419b0
Merge remote-tracking branch 'origin/main' into claude-fixPermissions…
MelvinBot Mar 13, 2026
3e18337
Fix: remove unused waitForBatchedUpdates import in SessionTest
MelvinBot Mar 13, 2026
82c2326
Merge pull request #84923 from software-mansion-labs/@adamgrzybowski/…
grgia Mar 13, 2026
5cbf8e3
Guard Create report path against workspaces with time tracking disabled
MelvinBot Mar 13, 2026
ee67899
Fix: Prettier formatting in IOURequestStepReport.tsx
MelvinBot Mar 13, 2026
323b637
Merge pull request #83380 from samranahm/79929/IOURequestStepScan-cle…
roryabraham Mar 13, 2026
bbab135
Merge pull request #85147 from Expensify/claude-fixPermissionsMockAnd…
rlinoz Mar 13, 2026
11cbaa3
Merge pull request #85028 from bernhardoj/chore/66456-remove-onyx-con…
inimaga Mar 13, 2026
4a54622
Add useCachedImageSource jest tests
VickyStash Mar 13, 2026
6c41212
Merge pull request #84077 from Krishna2323/krishna2323/issue/72502-2
puneetlath Mar 13, 2026
4976987
fix: use isOdometerDistanceRequest util instead of filename-based odo…
jakubkalinski0 Mar 13, 2026
072e926
chore: prettier run
jakubkalinski0 Mar 13, 2026
ba5b420
Merge pull request #84862 from Expensify/claude-updateExpensifyCardDocs
twisterdotcom Mar 13, 2026
c3bacb5
Merge branch 'Expensify:main' into refactor-setContactMethodAsDefault2
shubham1206agra Mar 13, 2026
c5fca4f
Merge pull request #84507 from linhvovan29546/refactor/66418-make-cha…
tgolen Mar 13, 2026
30114cf
Merge pull request #85039 from Krishna2323/krishna2323/issue/66417-2.6
tgolen Mar 13, 2026
365d749
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
kubabutkiewicz Mar 13, 2026
5fd741f
Merge pull request #85153 from ikevin127/ikevin127-frequencyDuplicate…
rlinoz Mar 13, 2026
a19cdc7
Merge pull request #55846 from truph01/fix/54941
madmax330 Mar 13, 2026
b6ce6ad
Merge pull request #84508 from linhvovan29546/refactor/80263-remove-S…
marcochavezf Mar 13, 2026
bd29a27
Merge pull request #84656 from Expensify/claude-fixNotHerePageAfterRe…
Valforte Mar 13, 2026
78690d7
Merge pull request #83200 from ijmalik/82068
yuwenmemon Mar 13, 2026
6fac4d6
Merge pull request #84597 from Expensify/claude-fixSearchFocusOnQuery…
marcochavezf Mar 13, 2026
6e6eeb2
Merge pull request #84655 from Expensify/claude-filterTimeExpensesByT…
justinpersaud Mar 13, 2026
48b076c
Merge pull request #84487 from shubham1206agra/refactor-getPolicy-18
justinpersaud Mar 13, 2026
a0334ec
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
kubabutkiewicz Mar 13, 2026
6dc40ec
Update version to 9.3.37-1
OSBotify Mar 13, 2026
b2b5ac1
Update Mobile-Expensify submodule version to 9.3.37-1
OSBotify Mar 13, 2026
7b05dcb
Revert "fix: Confirm page shows Amount field with 0.00 amount when re…
srikarparsi Mar 13, 2026
c43fe34
Merge pull request #85198 from callstack-internal/revert-82764-freeze…
Julesssss Mar 13, 2026
f2e5870
Update version to 9.3.37-2
OSBotify Mar 13, 2026
8c93956
Update Mobile-Expensify submodule version to 9.3.37-2
OSBotify Mar 13, 2026
c62a321
Merge pull request #85046 from shubham1206agra/refactor-setContactMet…
MonilBhavsar Mar 13, 2026
a73c821
Merge pull request #83545 from callstack-internal/part3c-pass-policyT…
tgolen Mar 13, 2026
69ab566
Merge pull request #85256 from Expensify/revert-82672-revert-82403-re…
srikarparsi Mar 13, 2026
29f4de9
Update version to 9.3.37-3
OSBotify Mar 13, 2026
8ef58ed
Update Mobile-Expensify submodule version to 9.3.37-3
OSBotify Mar 13, 2026
4070495
Update version to 9.3.37-4
OSBotify Mar 13, 2026
131808d
Update Mobile-Expensify submodule version to 9.3.37-4
OSBotify Mar 13, 2026
679e152
Merge pull request #83556 from software-mansion-labs/jakubkalinski0/O…
Julesssss Mar 13, 2026
e57e40b
dont show Allow Location modal when creating 0 amount expense
Valforte Mar 13, 2026
6e80417
prettier
Valforte Mar 13, 2026
96f84af
Merge pull request #84409 from callstack-internal/VickyStash/feature/…
Julesssss Mar 13, 2026
07f05b1
Merge pull request #85213 from software-mansion-labs/@GCyganek/fix-rh…
mountiny Mar 13, 2026
1336c9c
Merge pull request #83824 from M00rish/composerFocus
madmax330 Mar 13, 2026
0fac3c1
Update version to 9.3.37-5
OSBotify Mar 13, 2026
68e0903
Update Mobile-Expensify submodule version to 9.3.37-5
OSBotify Mar 13, 2026
9381f09
Merge pull request #85261 from Expensify/valforte/fixLocationModal
Valforte Mar 13, 2026
e5b2325
Revert "Respect mute preference for iOS foreground notification sounds"
Julesssss Mar 13, 2026
3aa6a49
Merge branch 'main' of github.com:Expensify/App into claude-extendUse…
yuwenmemon Mar 13, 2026
c1b4585
Merge pull request #85216 from software-mansion-labs/@GCyganek/keyboa…
Julesssss Mar 13, 2026
e7b5742
Update version to 9.3.37-6
OSBotify Mar 13, 2026
12ab5c9
Update Mobile-Expensify submodule version to 9.3.37-6
OSBotify Mar 13, 2026
c090102
Update version to 9.3.37-7
OSBotify Mar 13, 2026
b2c77ad
Update Mobile-Expensify submodule version to 9.3.37-7
OSBotify Mar 13, 2026
874fb33
Merge pull request #83893 from Expensify/claude-fixDisabledBankAccoun…
cristipaval Mar 13, 2026
dce39ac
Update PAYMENT_VIA_EXPENSIFY.md
mallenexpensify Mar 13, 2026
4342449
Revert "Revert "83598: Remove TestDrive from sign-up flow""
Valforte Mar 13, 2026
a97baed
remove test drive modal from RHP navigation experiment
Valforte Mar 13, 2026
d6648ed
Merge pull request #85269 from Expensify/revert-85140-revert-83750-83598
luacmartins Mar 13, 2026
0c5b493
Update version to 9.3.37-8
OSBotify Mar 13, 2026
fb83455
Update Mobile-Expensify submodule version to 9.3.37-8
OSBotify Mar 13, 2026
d84a146
Merge branch 'main' into helpsite-rename-perk
stephanieelliott Mar 13, 2026
9e06f79
Merge pull request #84795 from Expensify/claude-filterNullCoordinates…
chuckdries Mar 13, 2026
e7fbd25
Merge pull request #83388 from Expensify/claude-extendUseDocumentTitle
yuwenmemon Mar 13, 2026
9b4ebcb
Merge pull request #84607 from shubham1206agra/remove-RenameEmojiSkin…
Julesssss Mar 13, 2026
4d9781e
Merge pull request #82507 from NJ-2020/fix/selection-bug-37447
Julesssss Mar 13, 2026
622311a
Merge pull request #84223 from Expensify/helpsite-rename-perk
amyevans Mar 13, 2026
3fd9d5d
Merge pull request #84851 from daledah/follow-up/81243
Julesssss Mar 13, 2026
4367e8f
Merge pull request #85200 from imgyf/imgyf/85196-fix-netsuite-auth-er…
luacmartins Mar 13, 2026
03be8b3
Update version to 9.3.37-9
OSBotify Mar 13, 2026
8b1f2fa
Update Mobile-Expensify submodule version to 9.3.37-9
OSBotify Mar 13, 2026
f94b213
Merge pull request #85264 from Expensify/revert-82045-fix/81282-mute-…
Julesssss Mar 13, 2026
68e4ac4
Merge pull request #84380 from c3024/chaitanya/394853-workspace-addre…
deetergp Mar 13, 2026
7c751e5
Merge pull request #85267 from Expensify/mallenexpensify-patch-1
deetergp Mar 13, 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
  •  
  •  
  •  
59 changes: 16 additions & 43 deletions .claude/agents/helpdot-inline-reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,52 +9,25 @@ model: inherit

You are **Support Doc Optimizer** — an AI trained to evaluate HelpDot articles written for Expensify and create inline comments for specific violations.

Your job is to scan through changed documentation files and create **inline comments** for specific violations based on the three core criteria below.
Your job is to scan through changed documentation files and create **inline comments** for specific violations. **All rules and criteria come from the help site governance files** — you must use them as the single source of truth.

## Governance (source of truth)

**Before reviewing, read these files and use them as the authoritative source for all rules and violations:**

1. **docs/HELPSITE_NAMING_CONVENTIONS.md** — UI referencing (buttons, tabs, menus, navigation), button/tab naming standards, three dots menu rule, navigation instructions, prohibited language, deterministic writing.
2. **docs/HELP_AUTHORING_GUIDELINES.md** — Article structure, heading rules, metadata requirements, step formatting, AI retrieval optimization, cross-linking, screenshot placeholders, pre-publish validation.
3. **docs/TEMPLATE.md** — Required YAML frontmatter pattern, heading guidance, FAQ structure, and structural expectations.

Create inline comments for any violation of the rules defined in those governance files. When in doubt, the governance docs override any other guidance.

**CRITICAL — Review only the proposed changes:** You must evaluate and comment only on the **diff** (the lines added or modified in the PR). Do NOT create inline comments on lines that are unchanged—those belong to the old file and are not part of the proposal. Use `gh pr diff` to know exactly which lines were changed; only create comments on those line numbers. Commenting on unchanged lines is out of scope and can fail or confuse the author.

## 1. Readability Violations (Create inline comments for)
- Poor sentence clarity, grammar, or scannability issues
- Illogical flow or ordering of sections
- Reading level above 8th grade (complex jargon)
- Unnecessary filler or verbose language
- Incorrect use of numbered steps or bullet points

## 2. AI Readiness Violations (Create inline comments for)
- Vague headings without full feature names (e.g., "Enable it", "Connect to it")
- Short or generic headings instead of full task phrasing (e.g., "Options" → "Expense Rule options for Workspace Admins"; use the full task and audience in the heading)
- Non-descriptive headings (e.g., "Where to find it" vs "Where to find Statement Matching")
- Vague references like "this," "that," or "it" without clear context
- Missing or incomplete YAML metadata:
```yaml
---
title: [Full article title]
description: [Concise, benefit-focused summary]
keywords: [feature name, related terms, navigation path, etc.]
internalScope: Audience is [target role]. Covers [main topic]. Does not cover [excluded areas].
---
```
- **internalScope** must always be present. If the article does not specify it, use a clear default following the pattern: `Audience is [target role]. Covers [main topic]. Does not cover [excluded areas].`
- Wrong heading levels (using ### or deeper instead of # or ##)

**Note:** A breadcrumb path after the H1 heading is **not** required. Do not flag missing breadcrumbs as a violation.

## 3. Expensify Style Compliance Violations (Create inline comments for)
- Voice and tone issues:
- Not casual yet professional
- Excessive exclamation marks (max 1 per 400 words)
- Terminology violations:
- "Policy" instead of "Workspace"
- "User" instead of "Member"
- Wrong role names (not "Workspace Admin," "Domain Owner")
- Button label violations:
- "Continue" instead of "Next"
- "Save" instead of "Confirm" at end of flows
- Markdown formatting violations
- FAQ structure violations:
- Not using "# FAQ" as heading
- Questions not using ## subheadings
- Answers not in plain text
### Violation categories (aligned with governance)

- **Readability / structure:** Clarity, flow, scannability, step formatting, heading hierarchy — per HELP_AUTHORING_GUIDELINES.md and TEMPLATE.md.
- **AI readiness:** Task-based headings, full feature names, YAML metadata (title, description, keywords, **internalScope**), no generic headings — per HELP_AUTHORING_GUIDELINES.md and TEMPLATE.md. (Breadcrumb paths after H1 are not required; do not flag their absence.)
- **Naming and style:** Exact UI labels, button/tab naming, terminology (e.g. Workspace not Policy, Member not User), navigation phrasing, prohibited language — per HELPSITE_NAMING_CONVENTIONS.md and HELP_AUTHORING_GUIDELINES.md. FAQ must use `# FAQ` and ## for questions per TEMPLATE.md.

## Instructions

Expand Down
33 changes: 15 additions & 18 deletions .claude/agents/helpdot-summary-reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,30 @@ model: inherit

You are a documentation quality specialist that provides comprehensive assessments of HelpDot documentation changes.

Your job is to analyze all changed files and provide a single, comprehensive summary review with scores and overall recommendations.
Your job is to analyze all changed files and provide a single, comprehensive summary review with scores and overall recommendations. **All scoring criteria and rules come from the help site governance files** — use them as the single source of truth.

## Governance (source of truth)

**Before reviewing, read these files and use them as the authoritative source for scoring and recommendations:**

1. **docs/HELPSITE_NAMING_CONVENTIONS.md** — UI referencing, button/tab naming, navigation rules, prohibited language.
2. **docs/HELP_AUTHORING_GUIDELINES.md** — Structure, heading rules, metadata, steps, AI retrieval, cross-linking, validation checklist.
3. **docs/TEMPLATE.md** — YAML frontmatter, heading guidance, FAQ structure.

**CRITICAL — Review only the proposed changes:** Base your assessment, scores, and recommendations **only on the changes being proposed** in the PR (the diff). Use `gh pr diff` to see what was added or modified. Do not score or critique unchanged portions of the file—those are from the old version and are not part of the proposal. Evaluate and feedback only on the diff.

## Scoring Criteria

### 1. Readability (1-10)
- Sentence clarity and grammar
- Logical flow and organization
- Appropriate reading level (8th grade or below)
- Clear, jargon-free language
- Proper use of formatting elements
Derive your scores from the governance files above:

### 2. AI Readiness (1-10)
- Descriptive headings with full feature names and full task phrasing (e.g., "Expense Rule options for Workspace Admins" not "Options")
- Clear context without vague references
- Proper YAML metadata structure, including **internalScope** in the form: `Audience is [target role]. Covers [main topic]. Does not cover [excluded areas].` (use a clear default if not provided)
- Consistent heading hierarchy (# and ## only)
### 1. Readability (1-10)
- Sentence clarity, flow, scannability, step formatting — per HELP_AUTHORING_GUIDELINES.md and TEMPLATE.md.

**Note:** Breadcrumb paths after H1 are not required; do not penalize for their absence.
### 2. AI Readiness (1-10)
- Task-based headings, full feature names, YAML metadata (including **internalScope**), heading hierarchy (# and ## only) — per HELP_AUTHORING_GUIDELINES.md and TEMPLATE.md. (Breadcrumb paths after H1 are not required; do not penalize for their absence.)

### 3. Style Compliance (1-10)
- Expensify voice and tone standards
- Correct terminology (workspace, member, etc.)
- Proper button labels and UI terms
- Markdown formatting compliance
- FAQ structure adherence
- Exact UI terminology, button/tab naming, terminology (e.g. Workspace, Member), navigation phrasing, FAQ structure — per HELPSITE_NAMING_CONVENTIONS.md and HELP_AUTHORING_GUIDELINES.md.

## Output Format

Expand Down
10 changes: 7 additions & 3 deletions .claude/commands/review-helpdot-pr.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,21 @@ allowed-tools: Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),mcp__
description: Review a HelpDot documentation pull request
---

Perform a comprehensive HelpDot documentation review using two specialized subagents:
Perform a comprehensive HelpDot documentation review using two specialized subagents. Both reviewers use the **help site governance files** in the repo as the source of truth for rules and scoring:

- **docs/HELPSITE_NAMING_CONVENTIONS.md** — UI referencing, button/tab naming, navigation
- **docs/HELP_AUTHORING_GUIDELINES.md** — Structure, headings, metadata, AI retrieval, validation
- **docs/TEMPLATE.md** — YAML frontmatter, heading guidance, FAQ structure

## Step 1: Inline Review
Use the helpdot-inline-reviewer agent to:
- Scan all changed documentation files
- Create inline comments for specific HelpDot rule violations
- Create inline comments for violations of the governance rules above
- Focus on line-specific, actionable feedback

## Step 2: Summary Review
Use the helpdot-summary-reviewer agent to:
- Analyze the overall quality of all changes
- Analyze the overall quality of all changes using the governance criteria
- Provide comprehensive assessment with scoring
- Post one top-level PR comment with summary and recommendations

Expand Down
2 changes: 1 addition & 1 deletion Mobile-Expensify
14 changes: 11 additions & 3 deletions __mocks__/react-native-permissions.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
import {PERMISSIONS, RESULTS} from 'react-native-permissions/dist/commonjs/permissions';
import {PERMISSIONS} from 'react-native-permissions/dist/commonjs/permissions';
import type {ValueOf} from 'type-fest';

const RESULTS = {
UNAVAILABLE: 'unavailable',
BLOCKED: 'blocked',
DENIED: 'denied',
GRANTED: 'granted',
LIMITED: 'limited',
} as const;

type Results = ValueOf<typeof RESULTS>;
type ResultsCollection = Record<string, Results>;
type NotificationSettings = Record<string, boolean>;
type Notification = {status: Results; settings: NotificationSettings};

const openLimitedPhotoLibraryPicker: jest.Mock<void> = jest.fn(() => {});
const openSettings: jest.Mock<void> = jest.fn(() => {});
const check = jest.fn(() => RESULTS.GRANTED as string);
const request = jest.fn(() => RESULTS.GRANTED as string);
const check = jest.fn(() => Promise.resolve(RESULTS.GRANTED as string));
const request = jest.fn(() => Promise.resolve(RESULTS.GRANTED as string));
const checkLocationAccuracy: jest.Mock<string> = jest.fn(() => 'full');
const requestLocationAccuracy: jest.Mock<string> = jest.fn(() => 'full');

Expand Down
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 1009033600
versionName "9.3.36-0"
versionCode 1009033709
versionName "9.3.37-9"
// 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/envelope-open-star.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 2 additions & 11 deletions babel.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ const webpack = {
};

const metro = {
presets: [[require('@react-native/babel-preset'), {disableImportExportTransform: true}]],
presets: [require('@react-native/babel-preset')],
plugins: [
['babel-plugin-react-compiler', ReactCompilerConfig], // must run first!

Expand Down Expand Up @@ -174,14 +174,5 @@ module.exports = (api) => {
const runningIn = api.caller((args = {}) => args.name);
console.debug(' - running in: ', runningIn);

// Jest runs in Node.js without Metro's experimentalImportSupport transform,
// so Babel must handle import/export transforms for tests.
if (runningIn === 'babel-jest') {
return {
...metro,
presets: [[require('@react-native/babel-preset'), {disableImportExportTransform: false}]],
};
}

return runningIn === 'metro' ? metro : webpack;
return ['metro', 'babel-jest'].includes(runningIn) ? metro : webpack;
};
44 changes: 44 additions & 0 deletions contributingGuides/AI_ETIQUETTE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# AI Etiquette

AI is a great tool for drafting, searching, summarizing, and exploring. Humans must own judgment, accountability, and quality.

---

## You Own What You Post

If you submit a message, pull request, comment, or code with AI assistance, you are fully accountable for it. Before posting anything AI helped produce, you should be able to explain it without AI's help and feel confident putting your name behind it.

## Avoid AI Slop

"AI slop" is AI generated content copied and pasted with minimal to no human review. Use AI for brainstorming, research, and drafting, but treat it as a starting point, not the final result. Add your own context and nuance before sharing.

## Don't Trust AI Blindly

AI confidently says things that sound correct but are wrong. Always verify claims against source material. It's your job to understand and validate any AI-generated information you act on or share.

## When AI Isn't Enough

If a task can be fully automated with no human review, it should be automated for everyone, not done manually with AI. Our [AI Reviewers](/contributingGuides/philosophies/AI-REVIEWER.md) are an example: they do a first pass on code review, but they don't replace human review. You should still apply your own judgment when reviewing code, writing updates, or making decisions.

---

## Best Practices

### Don't

- Paste AI output directly without adding your own value
- Submit AI-generated code you haven't tested, debugged, and confirmed follows our [coding standards](./STYLE.md)
- Submit AI-generated code you don't fully understand
- Post poorly formatted AI output or long walls of text without distilling the key points
- Blame AI for mistakes. The mistake is yours regardless of the source
- Use AI to generate responses during live conversations instead of engaging directly

### Do

- Use AI to summarize, draft, research, and explore
- Review and edit all AI output before sharing. Put it in your own voice and make sure it's accurate
- Verify AI claims against source information
- Review all AI-generated code and content before asking others to review it
- Verify AI-written PR descriptions and add context needed to explain the change
- Provide evidence of manual testing on PRs, especially when test steps were AI-generated
- Invest time in learning to write effective prompts and recognize quality output
3 changes: 3 additions & 0 deletions contributingGuides/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,9 @@ This helps future investigators understand the history and current status of err
### Important note about JavaScript Style
- Read our official [JavaScript and React style guide](https://github.com/Expensify/App/blob/main/contributingGuides/STYLE.md). Please refer to our Style Guide before asking for a review.

### Using AI tools
- If you use AI tools (Copilot, Cursor, ChatGPT, etc.) to help write code or PR descriptions, please read our [AI Etiquette guide](https://github.com/Expensify/App/blob/main/contributingGuides/AI_ETIQUETTE.md). You are accountable for all AI output you submit.

### For external agencies that Expensify partners with
Follow all the above above steps and processes. When you find a job you'd like to work on:
- Post “I’m from [agency], I’d like to work on this job”
Expand Down
Loading
Loading