Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
344 commits
Select commit Hold shift + click to select a range
f513c46
resolve conflicts
luacmartins Jan 27, 2026
8eab28e
Expand month group
cristipaval Jan 27, 2026
f453812
translations
JS00001 Jan 27, 2026
be25915
Fix TypeScript errors in Rules.ts
luacmartins Jan 27, 2026
ccf233c
fix ts
luacmartins Jan 27, 2026
af203c4
Merge branch 'main' of github.com:Expensify/App into jsenyitko-applie…
JS00001 Jan 27, 2026
132091e
Merge remote-tracking branch 'origin/main' into cristi_support-groupB…
cristipaval Jan 27, 2026
7f3d241
Wire up RevokeMultifactorAuthenticationCredentials
chuckdries Jan 27, 2026
35cf978
Merge branch 'cmartins-merchantRules' into cmartins-createRule
luacmartins Jan 27, 2026
9156d6f
Lint and prettify
chuckdries Jan 27, 2026
8e79c3b
fix lint and types
JS00001 Jan 27, 2026
f6a68fa
Fix pendingFields/errorFields key in Rules.ts
luacmartins Jan 27, 2026
ffebc83
resolve conflicts
luacmartins Jan 27, 2026
dfe8474
Add spanish translation
chuckdries Jan 27, 2026
07c8c10
Add group month to peggy files
cristipaval Jan 27, 2026
b3a5b7b
Rename trackBillables to isBillableEnabled
luacmartins Jan 27, 2026
6ab6ea1
Fix spelling
chuckdries Jan 27, 2026
49560f0
Add MonthListItemHeaderTest
cristipaval Jan 27, 2026
76d5ab3
Add tests in SearchUIUtilsTest
cristipaval Jan 27, 2026
afaa452
Run prettier
cristipaval Jan 27, 2026
d85d81c
Use NumberUtils.rand64() for optimistic rule ID
luacmartins Jan 27, 2026
2b7c42c
generate proper optimistic id
luacmartins Jan 27, 2026
7fd17bb
Add Year to date as a preset date filter
cristipaval Jan 27, 2026
d8fffb4
Refactor Rule components to be reusable for merchant rules
luacmartins Jan 27, 2026
4c5ec75
Add RuleSelectionBase for reusable category/tag/tax selection
luacmartins Jan 27, 2026
1d41a3e
Fix tax, category, and tag display names in AddMerchantRulePage
luacmartins Jan 27, 2026
cb1f840
Update AddTaxRatePage to use RuleSelectionBase
luacmartins Jan 27, 2026
2b3a78b
Fix backToRoute type in RuleSelectionBase
luacmartins Jan 27, 2026
faa093b
DRY up field mapping in setPolicyMerchantRule
luacmartins Jan 27, 2026
379450f
Hoist constant outside iteration in getErrorMessage
luacmartins Jan 27, 2026
793ac77
Delete docs/articles/new-expensify/insights/index.html
stephanieelliott Jan 27, 2026
fe55483
added conceirgeReportID
PiyushChandra17 Jan 27, 2026
15147bc
Add files via upload
stephanieelliott Jan 27, 2026
abcb2ea
bump onyx to 3.0.32
bernhardoj Jan 27, 2026
7da3e3b
Update Add-a-payment-card-and-view-your-subscription.md
stephanieelliott Jan 27, 2026
4144916
Update View-the-Top-Spenders-report.md
stephanieelliott Jan 27, 2026
76c213e
Update View-the-Top-Spenders-report.md
stephanieelliott Jan 27, 2026
de8b37b
Add files via upload
stephanieelliott Jan 27, 2026
0240da8
Update How-to-Set-Up-Automatic-Report-Submissions.md
stephanieelliott Jan 27, 2026
4d13b5f
Update Automatically-submit-employee-reports.md
stephanieelliott Jan 27, 2026
fd963bd
Update comment
cristipaval Jan 27, 2026
c68ccf4
PR fixes, move magic numbers to constants
szymonzalarski98 Jan 27, 2026
ca24de4
Prettier fix
szymonzalarski98 Jan 27, 2026
15799a3
Merge branch 'main' into Cleanup-platform-OS-select-from-the-Hermes-b…
rinej Jan 27, 2026
2e9c66a
Merge branch 'main' into add-modifyAmount-check
cretadn22 Jan 27, 2026
9022cf4
test: Add IOURequestStepScan multi-scan mode tests
samranahm Jan 27, 2026
878b8f1
Merge remote-tracking branch 'origin/main' into cristi_support-groupB…
cristipaval Jan 27, 2026
02c120e
Regenerate search parsers
cristipaval Jan 27, 2026
d75bd6c
Refactor
cristipaval Jan 27, 2026
5565821
add tax rate support
JS00001 Jan 27, 2026
03ce5c3
fix: switch to waitForBatchedUpdates in UI tests since no component i…
samranahm Jan 27, 2026
f72fdf8
fix policy ID fields
JS00001 Jan 27, 2026
95bf3ef
Fix groupping by month
cristipaval Jan 27, 2026
81c6a67
add tax rate name
JS00001 Jan 27, 2026
5b070c6
add another test for tax rate
JS00001 Jan 27, 2026
5f51cb1
update translation
JS00001 Jan 27, 2026
2a0e6a8
Merge branch 'main' into cmartins-createRule
luacmartins Jan 27, 2026
1cb2a25
Update font sizes in MerchantRulesSection
luacmartins Jan 27, 2026
52c1e5c
Address PR feedback and use multifactorAuthenticationPublicKeyIDs
chuckdries Jan 27, 2026
f17d95c
Extract getBooleanTitle helper in AddMerchantRulePage
luacmartins Jan 27, 2026
31df6dd
Optimize RuleBooleanBase with useMemo and hoisted constants
luacmartins Jan 27, 2026
f7b8fcc
Refactor date handling
cristipaval Jan 27, 2026
5836397
Memoize items array in RuleBooleanBase
luacmartins Jan 27, 2026
5827e99
Fix tax type in SetPolicyMerchantRuleParams
luacmartins Jan 27, 2026
7c7ce11
Initial AI generated group by tag
neil-marcellini Jan 27, 2026
5a12aaa
Fix syntax error
cristipaval Jan 27, 2026
727c2ca
Run prettier
cristipaval Jan 27, 2026
df6cf5b
Create base group sorting properties
neil-marcellini Jan 27, 2026
9c383e7
Merge remote-tracking branch 'origin/main' into chuckdries/3ds-revoke…
chuckdries Jan 27, 2026
8296d9a
Use correct tax format for API vs Onyx
luacmartins Jan 27, 2026
97faf1b
Apply polyglot parrot patch
chuckdries Jan 27, 2026
8c91b75
Fix CI
cristipaval Jan 27, 2026
d4f8109
Use separate tax formats for API and Onyx
luacmartins Jan 27, 2026
562e1b5
fix prettier
luacmartins Jan 27, 2026
bb8d853
Add translations
cristipaval Jan 27, 2026
48cd069
Add missing tag list item header
neil-marcellini Jan 27, 2026
f10f523
Fix ESLint errors: remove unused import and use stable ContentWrapper
luacmartins Jan 27, 2026
c6cf0b6
Add basic error handling
chuckdries Jan 27, 2026
ee66a66
Remove useMemo from RuleBooleanBase - React compiler handles memoization
luacmartins Jan 27, 2026
9ba3826
Apply polyglot parrot patch
chuckdries Jan 27, 2026
541c3a1
refactor date utility function
cristipaval Jan 27, 2026
d683603
Put withdrawal id group back
cristipaval Jan 27, 2026
b57bce5
Fix consistency
cristipaval Jan 27, 2026
4898de4
self review
jmusial Jan 27, 2026
75f32c2
Merge branch 'main' of github.com:Expensify/App into jsenyitko-applie…
JS00001 Jan 27, 2026
17d70d6
Unify CodingRuleTax type for both Onyx and API
luacmartins Jan 27, 2026
63d343a
Add search call when expanding tag group
neil-marcellini Jan 27, 2026
e5fa4f4
Fix ESLint: use arrow functions for ContentWrapper components
luacmartins Jan 27, 2026
10af483
fix: test by removing nested describe block
samranahm Jan 27, 2026
d2de593
Update Automatically-submit-employee-reports.md
stephanieelliott Jan 27, 2026
f09cb54
Update How-to-Set-Up-Automatic-Report-Submissions.md
stephanieelliott Jan 27, 2026
bc954ec
update how we translate
JS00001 Jan 27, 2026
6f6b063
Fix style
neil-marcellini Jan 27, 2026
a9cba1c
Refactor: move RuleNotFoundPageWrapper into base components
luacmartins Jan 27, 2026
d45262f
Rename API to SetPolicyCodingRule with new params
luacmartins Jan 27, 2026
c631554
Add group by tag unit tests
neil-marcellini Jan 27, 2026
a3633b0
Fix translations, use polyglot parrot's
neil-marcellini Jan 27, 2026
1eeb893
Address PR feedback and fix translation string typo
chuckdries Jan 27, 2026
174c531
Fix imports: use relative path for RuleNotFoundPageWrapper
luacmartins Jan 27, 2026
2609db3
Fix styles
luacmartins Jan 27, 2026
9c35334
Apply polyglot parrot patch
chuckdries Jan 27, 2026
b72bd6c
update translations
JS00001 Jan 27, 2026
ea060d7
Merge remote-tracking branch 'origin/main' into chuckdries/3ds-revoke…
chuckdries Jan 27, 2026
ba1ce20
update es
JS00001 Jan 27, 2026
8fd73d6
Run translation script
chuckdries Jan 27, 2026
7a6fdd7
update translation logic to match
JS00001 Jan 27, 2026
cbc325e
Merge branch 'main' of github.com:Expensify/App into jsenyitko-applie…
JS00001 Jan 27, 2026
3fb73e9
Merge remote-tracking branch 'origin/main' into chuckdries/3ds-revoke…
chuckdries Jan 27, 2026
220bbbd
Add edit/delete functionality for merchant rules
luacmartins Jan 27, 2026
8c9c687
Fix params type for revoke command
chuckdries Jan 27, 2026
014cee5
Apply polyglot parrot patch
chuckdries Jan 27, 2026
fe867ac
update number of lines for pill button
jmusial Jan 27, 2026
03f797c
Add setDraftMerchantRule function to User actions
luacmartins Jan 27, 2026
bd9eac2
Merge branch 'main' into feat/concierge-followups-release-1
jmusial Jan 27, 2026
43bbde0
Fix sorting
cristipaval Jan 27, 2026
c9eddeb
fix prettier
jmusial Jan 27, 2026
d269497
Remove useMemo and useCallback from React compiled component
luacmartins Jan 27, 2026
5ed5632
Display category,tag and taxes only if they are available
luacmartins Jan 27, 2026
5bc3883
Update Automatically-submit-employee-reports.md
stephanieelliott Jan 27, 2026
3149528
Update src/pages/MultifactorAuthentication/RevokePage.tsx
chuckdries Jan 27, 2026
6f34508
Fix ESLint
luacmartins Jan 27, 2026
b1f6545
Address PR feedback
chuckdries Jan 27, 2026
13eed52
Revert "Run translation script"
chuckdries Jan 27, 2026
0a9f331
Merge remote-tracking branch 'origin/main' into chuckdries/3ds-revoke…
chuckdries Jan 27, 2026
0156a1d
Merge branch 'cmartins-createRule' into cmartins-editDelete
luacmartins Jan 27, 2026
fdd7430
DRY rules pages
luacmartins Jan 27, 2026
255b8fb
fix style
luacmartins Jan 27, 2026
858312b
Fix ESLint
luacmartins Jan 27, 2026
3623b54
Fix merchant rule editing to update existing rules instead of creatin…
luacmartins Jan 27, 2026
cf56291
Fix ruleID being overwritten by spread operator when mapping rules
luacmartins Jan 27, 2026
6d7aa25
Merge branch 'main' into cmartins-createRule
luacmartins Jan 27, 2026
897c091
Merge remote-tracking branch 'origin/main' into chuckdries/3ds-revoke…
chuckdries Jan 27, 2026
5f3a853
action on some ai comments
jmusial Jan 27, 2026
87a8626
Merge branch 'cmartins-createRule' into cmartins-editDelete
luacmartins Jan 27, 2026
04f95e5
Merge branch 'Expensify:main' into fix/76693-part-2
truph01 Jan 27, 2026
bdf7aa6
fix: remove useCallback
truph01 Jan 27, 2026
9ba618c
Fixed navigation issue after delete expense
abbasifaizan70 Jan 27, 2026
edf63fb
Merge main to fix parser conflicts
neil-marcellini Jan 27, 2026
6b3d349
update spanish translation
JS00001 Jan 27, 2026
85c2e94
Merge branch 'main' of github.com:Expensify/App into jsenyitko-applie…
JS00001 Jan 27, 2026
5934a03
Regenerate parsers to fix conflicts
neil-marcellini Jan 27, 2026
4509a80
Rename param to shouldUpdateMatchingTransactions
luacmartins Jan 27, 2026
680a4be
Revert "fix: Split label is not removed from Amount field when unrepo…
mollfpr Jan 27, 2026
f39278c
Merge remote-tracking branch 'origin/main' into cristi_support-groupB…
cristipaval Jan 27, 2026
163e227
Regenerate after conflicts
cristipaval Jan 27, 2026
3ff0705
Merge pull request #79073 from callstack-internal/callstack-internal/…
mjasikowski Jan 27, 2026
384a8c3
Merge branch 'main' into feat/concierge-followups-release-1
jmusial Jan 27, 2026
6fc9a45
Merge pull request #80574 from bernhardoj/fix/80105-onyx-bump
marcochavezf Jan 27, 2026
db5111c
Use booleans, remove parseBooleanString, update form types
luacmartins Jan 27, 2026
f64e88d
Fix prettier
luacmartins Jan 27, 2026
a6afd6e
Add personalCardImport beta
deetergp Jan 27, 2026
f7ec0d9
Merge pull request #80570 from Expensify/chuckdries/3ds-revoke-access
chuckdries Jan 27, 2026
b8b30bf
Merge branch 'cmartins-createRule' into cmartins-editDelete
luacmartins Jan 27, 2026
00ff34e
Fix No tag to sort alphabetically
neil-marcellini Jan 27, 2026
f291a84
Merge pull request #80677 from Expensify/revert-80010-78907/split-lab…
Valforte Jan 27, 2026
e47e5aa
Fix TS
luacmartins Jan 27, 2026
a73b331
Merge pull request #80584 from Expensify/cristi_support-groupByMonth
cristipaval Jan 27, 2026
c4a9840
Update version to 9.3.10-1
OSBotify Jan 27, 2026
c2449ed
Update Mobile-Expensify submodule version to 9.3.10-1
OSBotify Jan 27, 2026
e97d969
Add unit test for "No tag" sorting
neil-marcellini Jan 27, 2026
d9f3f00
add optimistic action revert if the request fails
jmusial Jan 27, 2026
8a28de2
revert flag
jmusial Jan 27, 2026
f83f341
Add template of NewDotHomePage
WojtekBoman Jan 15, 2026
c347e9d
Fix TS
luacmartins Jan 27, 2026
02856ce
Adjust FAB styles
WojtekBoman Jan 19, 2026
f23e863
Add buttons navigating to search sections
WojtekBoman Jan 20, 2026
479e3d4
Rename current home route to inbox
WojtekBoman Jan 26, 2026
795c4f4
move home to protected routes
adamgrzybowski Jan 26, 2026
121d40f
add home in lights and darks
adamgrzybowski Jan 26, 2026
d651a3a
add preload for new home
adamgrzybowski Jan 26, 2026
20ed9e6
remove unnecessary newline
adamgrzybowski Jan 26, 2026
97dc421
Separate NavigationTabBar depends on newDotHome beta
WojtekBoman Jan 26, 2026
89a29ad
Add HOME to SCREENS_WITH_NAVIGATION_TAB_BAR
WojtekBoman Jan 26, 2026
d8d5a30
Display FAB above bottom tab on narrow layout
WojtekBoman Jan 27, 2026
1719370
Update home.svg
WojtekBoman Jan 27, 2026
3292556
Fix FAB styles
WojtekBoman Jan 27, 2026
cc15d6f
Compress home.svg
WojtekBoman Jan 27, 2026
b43438f
Add en and es translations for home page
WojtekBoman Jan 27, 2026
06907a8
Replace /home with /inbox in SidebarLinks
WojtekBoman Jan 27, 2026
f9a5c9c
Hide Home button when users dont have access to beta
WojtekBoman Jan 27, 2026
15e561b
Merge pull request #80611 from cretadn22/new-branch-add-modifyAmount-…
thienlnam Jan 27, 2026
1d05720
Merge branch 'main' into cmartins-editDelete
luacmartins Jan 27, 2026
2343de0
Resolve conflicts
luacmartins Jan 27, 2026
b1dd17c
Add translations
WojtekBoman Jan 27, 2026
f038b68
Remove test buttons from HomePage
WojtekBoman Jan 27, 2026
1f21531
Fix order of buttons in NavigationTabBar
WojtekBoman Jan 27, 2026
45760e7
Rename routes
WojtekBoman Jan 27, 2026
d97036a
Fix hover styles of home button
WojtekBoman Jan 27, 2026
5b9b810
Update bool type
luacmartins Jan 27, 2026
24b39cb
Update translations
luacmartins Jan 27, 2026
b34c0f2
Update existing rule
luacmartins Jan 27, 2026
b1f0d53
Improve test to make it valid
neil-marcellini Jan 27, 2026
0e0267e
Move Follow up utils to a separate file
jmusial Jan 27, 2026
184e126
Fix TS
neil-marcellini Jan 27, 2026
be04dd8
fix prettier
jmusial Jan 27, 2026
ff21f09
Merge pull request #80681 from Expensify/scott-addPersonalCardImportBeta
amyevans Jan 27, 2026
fb2d8d1
Fix bool select
luacmartins Jan 27, 2026
affd413
Merge branch 'cmartins-createRule' into cmartins-editDelete
luacmartins Jan 27, 2026
480a0f6
Change the fallback page to Inbox on web SearchRouterPage
WojtekBoman Jan 27, 2026
2d7306c
Merge pull request #80674 from abbasifaizan70/80663
roryabraham Jan 27, 2026
89f3b07
Merge pull request #80545 from Expensify/cmartins-createRule
luacmartins Jan 27, 2026
e80e190
Merge pull request #80562 from Expensify/jsenyitko-applied-workspace-…
luacmartins Jan 27, 2026
59180c6
Fix lint
luacmartins Jan 27, 2026
252fa0c
Merge branch 'main' into cmartins-editDelete
luacmartins Jan 27, 2026
c48cc6f
Merge main and fix conflicts
neil-marcellini Jan 27, 2026
c46e944
Update edit routes
luacmartins Jan 27, 2026
5d7dea2
Use const
luacmartins Jan 27, 2026
3603663
Update E/App version
roryabraham Jan 27, 2026
9302996
Fix screens order in AuthScreens
WojtekBoman Jan 27, 2026
5e449d2
Fix style
neil-marcellini Jan 27, 2026
f90f148
Use new constant
luacmartins Jan 27, 2026
6ee15b2
Merge pull request #80694 from Expensify/Rory-BumpVersion
roryabraham Jan 27, 2026
a855d6e
Merge pull request #80296 from Expensify/stephanieelliott-patch-23
twisterdotcom Jan 27, 2026
3548c5a
Bump Mobile-Expensify submodule to 9.3.10-2
roryabraham Jan 27, 2026
f0acb8b
Merge pull request #80695 from Expensify/Rory-BumpVersionAgain
roryabraham Jan 27, 2026
865fccf
Update version to 9.3.10-3
OSBotify Jan 27, 2026
f093336
Update Mobile-Expensify submodule version to 9.3.10-3
OSBotify Jan 27, 2026
57aad17
Merge pull request #80638 from Expensify/neil-group-by-tag
neil-marcellini Jan 27, 2026
e3ba688
Add delete button as secondary footer button
luacmartins Jan 27, 2026
9a0e44f
Remove unused imports
luacmartins Jan 27, 2026
693a3dd
Create HOW_TO_BECOME_A_BACKEND_CONTRIBUTOR.md
mallenexpensify Jan 27, 2026
4da74bb
Merge pull request #80504 from software-mansion-labs/home-page/naviga…
mountiny Jan 27, 2026
a74aed3
Merge pull request #80628 from samranahm/79929/clean-up-IOURequestSte…
roryabraham Jan 27, 2026
a9488e7
Merge pull request #80699 from Expensify/mallenexpensify-patch-1
flodnv Jan 27, 2026
22a5ddc
Update failure case
luacmartins Jan 27, 2026
154faea
Fix bool value error, show not found
luacmartins Jan 28, 2026
78523af
rename home to inbox
adamgrzybowski Jan 28, 2026
534cf47
Use state to prevent not found page from showing when deleting rule
luacmartins Jan 28, 2026
a6141af
fix prettier
adamgrzybowski Jan 28, 2026
ae02efb
Remove offline indicator in wide screens
luacmartins Jan 28, 2026
57b2f8c
Merge pull request #80539 from software-mansion-labs/feat/concierge-f…
Beamanator Jan 28, 2026
e566e0a
Remove offline indicator
luacmartins Jan 28, 2026
93b17df
Merge branch 'main' into home-page/rename-home-directory-to-inbox
adamgrzybowski Jan 28, 2026
ffe0368
Merge pull request #80655 from Expensify/cmartins-editDelete
luacmartins Jan 28, 2026
e4767cf
fix runtime crash
luacmartins Jan 28, 2026
0b42feb
Merge pull request #80571 from software-mansion-labs/home-page/rename…
mountiny Jan 28, 2026
902d0af
Merge pull request #80172 from PiyushChandra17/fix/80016
thienlnam Jan 28, 2026
116ac14
Merge pull request #80181 from Expensify/helpsite-virtualcfo-R0
trjExpensify Jan 28, 2026
d0bf1c1
Merge pull request #80702 from Expensify/cmartins-fixRuntimeCrash
luacmartins Jan 28, 2026
40e7361
Display TopBar on HomePage
WojtekBoman Jan 28, 2026
610ce56
Merge pull request #79550 from truph01/fix/76693-part-2
roryabraham Jan 28, 2026
2abf7ab
Merge pull request #80704 from software-mansion-labs/home-page/top-bar
mountiny Jan 28, 2026
2cf4850
Merge pull request #80110 from callstack-internal/Cleanup-platform-OS…
roryabraham Jan 28, 2026
a25f1d1
Merge branch 'main' into fix/67778-part-6
dukenv0307 Jan 28, 2026
9139281
Remove ReportsSplitNavigator from preloadedRoutes when resizing from …
WojtekBoman Jan 28, 2026
04bfa3e
Merge pull request #79960 from dukenv0307/fix/67778-part-6
danieldoglas Jan 28, 2026
531bea2
Merge pull request #80701 from software-mansion-labs/nav/fix-navigati…
grgia Jan 28, 2026
38414f4
Merge branch 'main' of github.com:Expensify/App into borys3kk-fix-add…
borys3kk Jan 28, 2026
ed6accb
potential resolve react-compiler compatiiblity
borys3kk Jan 28, 2026
c564036
resolve react compiler compliance in BarChartContent, useChartInterac…
borys3kk Jan 28, 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 Mobile-Expensify
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1009031000
versionName "9.3.10-0"
versionCode 1009031003
versionName "9.3.10-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
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class MainApplication : MultiDexApplication(), ReactApplication {
add(NavBarManagerPackage())
}

override fun getJSMainModuleName() = ".expo/.virtual-metro-entry"
override fun getJSMainModuleName() = "index"

override val isNewArchEnabled: Boolean
get() = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion assets/images/home.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 9 additions & 1 deletion babel.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ const webpack = {
};

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

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

const isJest = runningIn === 'babel-jest';
if (isJest) {
return {
...metro,
presets: [[require('@react-native/babel-preset'), {disableImportExportTransform: false}]],
};
}

return ['metro', 'babel-jest'].includes(runningIn) ? metro : webpack;
};
61 changes: 61 additions & 0 deletions contributingGuides/HOW_TO_BECOME_A_BACKEND_CONTRIBUTOR.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
**Overview**

We are hiring an exceptionally strong Backend Engineer with deep expertise in C++ and PHP to join a small, senior, fully-remote engineering team. This is a high-trust, high-ownership environment with minimal process, no standups, and no sprint ceremonies.

This role is intentionally designed for engineers who thrive with autonomy, clear ownership, and written communication. You will be highly visible, highly trusted, and expected to operate independently from day one.

As part of our high-vetting process, all shortlisted candidates will complete a C++ and PHP technical challenge before moving forward.

**What You’ll Be Responsible For:**

- Designing, building, and maintaining backend systems using C++ and PHP as primary technologies
- Owning features and systems end-to-end, from architecture through production delivery
- Solving complex technical problems independently and proactively
- Providing daily written updates on progress, decisions, and blockers
- Actively participating in technical and product discussions via Slack in a chat-driven environment
-Collaborating with a small, senior team in a fully asynchronous operating model

**Technical Requirements (Non-Negotiable)**

- Expert-level proficiency in both C++ and PHP
- Clear commitment to C++ and PHP as long-term backend technologies (not stepping stones)
- Demonstrated problem-solving ability, validated through a paid C++ and PHP technical challenge
- Strong backend systems thinking (performance, reliability, maintainability)
- SQL experience is a plus, but not required

**Communication & Collaboration Expectations**

- Extremely strong English proficiency, including nuance, tact, and professional judgment
- Comfortable being highly visible and highly active in written discussions
- Able to communicate clearly and concisely in a fully asynchronous, Slack-based environment
- Proactive in surfacing risks, questions, and recommendations without being prompted

**Work Style & Autonomy**

- Thrives without traditional management, standups, or sprint structures
- Strong self-management, ownership mentality, and bias toward action
- Able to operate effectively in a flat, non-hierarchical organization
- Comfortable making decisions independently and being accountable for outcomes

**Time Zone & Availability**

- Must have at least 6 hours of daily overlap with: US Pacific Time (PT) or Central European Time (CET)
- Time zone overlap is especially critical during the first 3 months for onboarding and alignment

**Hardware Requirements (Strict)**
- MacBook with Apple Silicon (M1 or newer)
- Minimum 36GB RAM (64GB+ strongly preferred)
- Latest version of macOS installed prior to start date

**How We Hire**
This role uses a high-vetting process
Selected candidates will complete a C++ and PHP technical challenge
Performance in the challenge will be used to evaluate problem-solving ability, code quality, and communication clarity

**Skills**

MySQL, API, SQL, Git, PHP, Microsoft SQL Server, GitHub Copilot, SQLite, Database, C++/CLI, C++, RESTful API, GitHub, JavaScript, Java, PHP Script

**Next Steps**

If you're interested in applying, email contributors@expensify.com
4 changes: 2 additions & 2 deletions contributingGuides/NAVIGATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ import Navigation from '@libs/Navigation/Navigation';
import ROUTES from '@src/ROUTES';

// Basic navigation to a route
Navigation.navigate(ROUTES.HOME);
Navigation.navigate(ROUTES.INBOX);

// Navigation with parameters
Navigation.navigate(
Expand Down Expand Up @@ -1344,7 +1344,7 @@ import {ROUTES} from '@src/ROUTES';
Navigation.goBack();

// Back navigation with fallback
Navigation.goBack(ROUTES.HOME);
Navigation.goBack(ROUTES.INBOX);

const reportID = 123;
// Back navigation to a route with specific params
Expand Down
5 changes: 5 additions & 0 deletions docs/_data/_routes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,11 @@ platforms:
title: Workspaces
icon: /assets/images/shield.svg
description: Configure rules, settings, and limits for your company’s spending.

- href: insights
title: Insights
icon: /assets/images/monitor.svg
description: Get insight into company expenses to track spend patterns and stay informed.

- href: reports-and-expenses
title: Reports & Expenses
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,35 @@
---
title: Automatically Submit Employee Reports
description: Learn how to configure automatic report submissions in Expensify Classic using Submission Frequency in your Workspace settings.
keywords: [Expensify Classic, automatic report submission, delay submissions, submission frequency, expense report schedule]
title: Automatically submit employee reports
description: Learn how to configure automatic employee report submissions in Expensify Classic using the Submissions setting in your Workspace workflows.
internalScope: Audience is Workspace Admins. Covers how to enable and configure automatic employee report submissions in Expensify Classic. Does not cover manual report workflows or approval routing.
keywords: [Expensify Classic, automatic report submission, submission frequency, delay submissions, expense report schedule, Workspace workflows]
---


By setting a submission schedule for your workspace, expenses are automatically added to a report and submitted for approval based on the schedule you choose. This ensures employee expenses are collected without requiring manual submission each time.

---

# Automatically Submit Employee Reports
# Automatically submit employee reports

When an employee creates an expense, it's automatically added to a report. If no report exists, a new one is created. Reports are then submitted according to the schedule you choose—daily, weekly, monthly, twice per month, by trip, or manually.
When Submissions is enabled, employee expenses are automatically added to a report and submitted for approval based on the schedule you choose. This saves your team from submitting reports manually.

**Note:** If you're using **Submission Frequency** and an expense has a violation, it won't be submitted until the violation is fixed. That expense is removed from the current report and added to a new open report.
If there’s no open report, a new one is created automatically. Reports are submitted according to your selected frequency - daily, weekly, twice per month, by trip, instantly, or manually.

**Note:** Expenses with violations (like missing receipts or incorrect categories) won’t be submitted. They’re removed from the report and moved to a new open report. Once the violation is fixed, they'll be submitted on the next scheduled date.

---

# Who can enable automatic report submissions

Only **Workspace Admins** can turn on Submissions and choose a submission frequency for their Workspace.

---

# Where to find the Submissions setting

- **Web:** Go to the navigation tabs on the left and select **Workspaces > [Workspace Name] > Workflows**
- **Mobile:** Tap the hamburger menu in the top-left corner, then select **Workspaces > [Workspace Name] > Workflows**

---

Expand All @@ -22,37 +38,62 @@ When an employee creates an expense, it's automatically added to a report. If no
To enable and configure automatic submissions:

1. Go to **Settings > Workspace > [Workspace Name] > Workflows**.
2. Turn on **Submission Frequency** by toggling it on.
3. Select a **Submission frequency** from the following options:
- **Instantly** - Expenses are submitted upon creation.
- **Daily** – Reports are submitted every evening. Violations are submitted once corrected.
- **Weekly** – Reports are submitted weekly. Violations are submitted on Sunday after correction.
- **Twice a month** – Reports are submitted on the 15th and the last day of the month. Violations are submitted at the next applicable date.
- **Monthly** – Reports are submitted once a month on your selected day. Violations are submitted the following month.
- **By trip** – A report is submitted when no new expenses are added for two full days. A new trip report starts after that.
- **Manually** – Expenses are auto-added to a report, but employees must submit them manually.
2. Find the **Submissions** section
3. Toggle it on (green)
4. Choose **how often expenses submit**:
- **Instantly** — Expenses are submitted as soon as they’re created
- **Daily** — Reports are submitted each evening (Pacific Time)
- **Weekly** — Reports are submitted weekly on Sundays
- **Twice a month** — Reports are submitted on the 15th and last day of the month
- **By trip** — A report is submitted after two full days without new expenses
- **Manually** — Expenses are auto-added to reports, but members must submit manually

![Submissions section in Expensify Workflows settings, showing the toggle enabled and Frequency set to By trip]({{site.url}}/assets/images/ExpensifyHelp-WorkspaceSubmissions_Classic.png){:width="100%"}

---

## How to use the By trip submission frequency

If your team travels often, choose **By trip** as your submission frequency. A report is submitted after two full days without any new expenses. A new trip report begins after that.

That way, travel expenses are grouped together without needing to sort them manually.

---

# FAQ

## I turned off Submission Frequency. Why are reports still being submitted automatically?
## What happens to expenses with violations?

Expenses with violations—like missing receipts, incorrect categories, or amounts over Workspace limits—won’t be submitted. They’re removed from the current report and moved to a new open report. Once the violation is fixed, they’ll be submitted on the next scheduled date.

## Why are reports still submitting automatically after disabling Submissions?

If Submissions is disabled or set to **Manually** on the Workspace, check the member’s **Individual Workspace**. Their personal settings may still have Submissions enabled, which will apply by default.

## What time of day does automatic submission happen?

All scheduled report submissions occur in the **evening (Pacific Time)**, regardless of which frequency you choose.

## Can I create separate automatic reports for each employee credit card?

No. Expenses from multiple cards are combined into a single report, based on the selected frequency.

Turning off Submission Frequency for a Workspace doesn't affect an employee's Workspace settings. If reports are still auto-submitted, the employee will likely have Submission Frequency enabled in their workspace.
To separate them:
- Manually create reports for each card
- Filter by card and assign expenses to the correct report

## What time of day are reports submitted via Submission Frequency?
## Can employees override the Workspace submission schedule?

All automatic report submissions occur in the evening Pacific Standard Time (PST).
No. Once Submissions is enabled on the Workspace, it overrides any individual submission settings members may have in their own Workspaces.

## What happens if Submission Frequency is enabled on both the Individual and Company Workspace?
## Can automatic submissions be paused during month-end review?

The Company Workspace settings override the Individual Workspace settings. However, suppose your Company Workspace is configured to **Manually** submit reports, but an employee has Submission Frequency enabled on their **Individual Workspace** with a set frequency (like daily or weekly. In that case, their personal settings will control submission timing. Reports will be submitted automatically based on the frequency selected in their workspace.
There’s no pause button, but you can temporarily change the Frequency setting to **Manually** to prevent automatic submissions. Just switch it back after your review period.

## Does Submission Frequency automatically create separate reports for each of my credit cards?
## Can employees still submit manually if Submissions is turned on?

No. All expenses are collected into a single report and submitted based on the selected frequency.
Yes. Employees can submit reports manually at any time—even if a scheduled frequency (like Daily or By trip) is selected. The schedule just automates submission if they don’t act first.

If you need reports separated by card:
- Manually create reports for each card and assign expenses accordingly.
- Use filters to group expenses by card before assigning them to reports.
## Do scheduled submissions include all unsubmitted expenses?

Only compliant expenses will be submitted. Expenses with violations, missing data, or issues will stay in an open report until fixed.
Loading
Loading