Releases: Expensify/App
Releases · Expensify/App
Release list
9.4.76-1-staging
9.4.76-0-staging
What's Changed
- Add Rillet support for vendor matching by @ShridharGoel in #100542
- Fix Report Field List Values page scrolling by @KJ21-ENG in #99463
- [NoQA][Insights] Create the Insights page beta by @mhawryluk in #100689
- [No QA] Add ProposalPolice contributor documentation by @MelvinBot in #100729
- Move pre-selected custom list to top of list in the NetSuite custom list picker by @marufsharifi in #100511
- Add Campfire integration by @s77rt in #100446
- [NoQA] feat: Add ManualSendMessageVisible subspans by @LukasMod in #98043
- [Payment due @thelullabyy] [No QA] Update certificate pins for NewDot by @staszekscp in #96722
- [No QA] Update Amex link for new form by @stephanieelliott in #99812
- [No QA] Docs updates for E/A#90402 View transactions shortcut on Expensify Card by @MelvinBot in #96524
- [Commuter Exclusion] Allow editing historical distance expenses by @fedirjh in #98368
- Fix staging server toggle resetting on cold start in release builds by @mikolajpochec in #98971
- Fix commuter distance flicker after rate changes by @fedirjh in #98371
- Fix map/GPS distance expenses skipping home address check on move by @fedirjh in #100478
- [CP Staging] revert: refactor the new-transaction highlight rail and the wide RHP width model by @TaduJR in #100810
- [No QA] Docs updates for E/A#99108 troubleshoot adding a work email during setup by @MelvinBot in #100633
- [Payment due @situchan] Revert the reimbursement amount formula tokens by @ishpaul777 in #100796
- Gate settlement frequency and currency conversion fees selection behind a Save button (a11y On Input, PR 10) by @MelvinBot in #99235
- Remove legacy Button component, clean seatbelt by @Guccio163 in #100000
- [Payment due @Krishna2323] Use SearchForUsers for mentions and chat switching by @fedirjh in #99651
- [Payment due @huult] Enforce new rules structure to determine approval workflows by @Gonals in #99894
- Surface "Create a rule" prompt on expense edits to drive merchant rule adoption in-situ by @Krishna2323 in #99164
- fix: sort and total Search amounts by the sign the row displays by @BartekObudzinski in #99747
- Allow disabling and deleting report fields once the integration that imported them is disconnected by @MelvinBot in #100783
- Persist filters across view in Search by @bernhardoj in #96466
- [No QA] Extract a shared helper for dynamic-route path joining by @collectioneur in #100717
- Resolve optimistic agent accountID via the replace pattern by @NicolasBonet in #100068
- Docs updates for E/A#97209 Clarify invoicing details not copied on workspace duplication by @MelvinBot in #98212
- [Payment due @situchan] fix: agree on how a category tax rule's rate is displayed by @Krishna2323 in #100586
- [No QA] Fix middleware registration test count after concurrent merges by @NicolasBonet in #100858
- Block new chat creation during a Supportal session with the standard blocking modal by @MelvinBot in #100196
- Fix crash when a workspace avatar renders before its policy ID lands by @MelvinBot in #100539
- Introduce HeaderTitle by @Guccio163 in #99999
- fix: preserve lightning bolt icon after government rate currency change by @nabi-ebrahimi in #100607
- [LegendList 1/7] [No QA] feat: add LegendList foundation by @chrispader in #100732
- [Insights] Set up the Insights tab in the tab bar by @mhawryluk in #100800
- [CP Staging] Fix invoice field visibility, count, and name collision issues by @mollfpr in #100850
- [Payment due @huult] Keep the page across a forced SAML re-auth by @allgandalf in #100475
- Fix duplicated report total when expenses are in another currency by @oqildev in #99738
- [Payment due @Eskalifer1] Add MCP connectors with ChatGPT by @rushatgabhane in #99739
- [No QA] Ignore the Convert script's duplicate-key IndexedDB rejection in Sentry by @elirangoshen in #100275
- Unpin the contact method child screens from the profile by @mukhrr in #100780
- Perf/spend filters hover by @sumo-slonik in #97697
- [No QA] Update ProposalPolice edit timestamp on every substantive edit by @roryabraham in #100764
- [Insights: Violations][R2]: Add support for has:approved-violation by @nkdengineer in #100620
- Remove custom agent beta gates by @puneetlath in #100875
- Allow admins to attach receipts to approved expenses by @dukenv0307 in #100460
- [NO QA] fix: upgrade React Native Sentry SDK by @rlinoz in #100711
- Add mentions and emojis suggestions to Home prompt box; fix RHP suggestions by @GCyganek in #99912
- [No QA] Fix import/no-cycle - part 6 by @LukasMod in #100164
- [CP Staging] Fix pre-mount teardown under Share modal and offline not-found flash for pending reports by @JakubKorytko in #100826
- refactor: remove unsafe assertions from quick action menu by @KJ21-ENG in #99338
- [No QA] Fix import/no-cycle - part 7 by @LukasMod in #100165
- Filter task search rows by live report status instead of the stale snapshot by @MelvinBot in #100069
- Fix regex: dont slice longer words by @Guccio163 in #100853
Full Changelog: 9.4.75-0-staging...9.4.76-0-staging
9.4.75-3
What's Changed
- Fix stale policyID on the Travel page after upgrading from Book Travel by @Eskalifer1 in #99592
- [Payment due @mananjadhav] Read attachment migration flag with Onyx.connectWithoutView by @NicolasBonet in #100531
- [No QA] feat: add native span benchmark tooling by @chrispader in #98144
- [Batch 1] Migrate seven simple ConfirmModal call sites to useConfirmModal by @MelvinBot in #100285
- [No QA] Pin Hermes V1 version in artifacts iOS workflow by @mateuuszzzzz in #100572
- Let the base path decide the contact methods RHP background by @mukhrr in #100292
- [No QA] chore(ci): cache Jest transforms in the Reassure perf jobs by @WojtekBoman in #100297
- Fix WS Settings - Track tax feature is cut off with link not accessible on landscape mode by @GCyganek in #99660
- [No QA] Remove comments that do not add context by @JakubKorytko in #100576
- Revert "Scope Top Spenders suggested search to eligible workspace policyIDs" by @MelvinBot in #99907
- Add travel billing feed selector by @allgandalf in #99527
- Upgrade Blacksmith checkout action by @iwiznia in #100619
- Fix bulk Pay/Mark as Paid disappearing for whole-report selections by @MelvinBot in #94075
- Use UserPill for the task Assignee row to match the expense Attendee row by @MelvinBot in #100280
- Fix infinite amount and pending rate when submitting a self DM distance expense quickly by @mukhrr in #99665
- fix: System message with no tag is shown by @truph01 in #86864
- refactor: the new-transaction highlight rail and the wide RHP width model by @TaduJR in #98744
- Fix green plus icon alignment in receipt empty state by @MelvinBot in #100249
- Implement invoice fields feature by @ShridharGoel in #93317
- [No QA] Revert accidental .github changes from #93317 by @ShridharGoel in #100684
- Move pre-selected cards to top of list in the spend rule card picker by @marufsharifi in #100298
- Count in-flight Pusher applies as applied when detecting update gaps by @adhorodyski in #99774
- [CP Staging] Fix Unable to scroll down to Save button when prompt field focused in landscape by @GCyganek in #100685
- Unpin #admin room when creating workspace when user already had paid one by @hungvu193 in #100278
- [No QA] Assert Home by heading role instead of ambiguous text selector by @kacper-mikolajczak in #100359
- refactor: extract MoneyRequestReportEmptyStateView by @sosek108 in #100024
- Add beta override switches to the Test Tool menu by @arekm213 in #99444
- [Performance] Pre-mount new expense destinations behind confirmation RHP by @JakubKorytko in #97874
- Add NumericField with NumericEditingController by @jmgraa in #99772
- Rules revamp: Standardize in-line delete experience by @Krishna2323 in #100570
- Part 7: Remove Onyx.connect() for the key: ONYXKEYS.PERSONAL_DETAILS_LIST in src/libs/actions/Report.ts by @lorretheboy in #99836
- Cut pre-paint work out of the Search router open path by @sumo-slonik in #100378
- Trim search term before deriving the phone/email search value in useSearchSelector by @MelvinBot in #100031
- Fix unread marker disappears after revealing Concierge history in side panel by @collectioneur in #100038
- Close the lock account confirm modal once the request finishes by @allgandalf in #98397
- Fix Side Panel backdrop stuck hidden on web (Concierge + FAB freeze on narrow layout) by @MelvinBot in #98982
- Add search field to domain group preferred workspace selectors by @jakubstec in #100147
- feat: add request access button to the domain access restricted screen by @jakubstec in #100319
- Fix: open Confirm Details when pressing Enter in empty focused search on Workspace Members invite by @MelvinBot in #98564
- [CP Staging] Fix expense card press in the report preview: torn-down thread and narrow-layout cascade by @wildan-m in #100688
- Upgrade Blacksmith checkout action to v1.7.0 by @iwiznia in #100718
- Skip the Continue setup step for a pending USD bank account by @MelvinBot in #100113
- feat: remove isNewManualExpenseFlowEnabled beta flag by @thelullabyy in #100215
MenuItemWithTopDescriptiondecomposition - simplest usages by @war-in in #100191- [No QA] Fix DualEntry casing on the Connections help site hub by @MelvinBot in #100617
- Show Enable Global Reimbursements modal on Corpay debit pay error by @ShridharGoel in #99341
- fix: use
getRootState, so notification waits until navigation is ready by @war-in in #100618 - [No QA] Bump Onyx to 3.0.111 by @fabioh8010 in #100681
- [Batch 2] Migrate workspace travel, workflows and company cards ConfirmModal usages to useConfirmModal by @MelvinBot in #100284
- Fix iOS scan crash with 30 HEIC images when creating expense by @nabi-ebrahimi in #99679
- [No QA] [NO QA] Update How-to-Export-Reports.md by @CortneyOfstad in #98460
- [NO QA] Add {report:debitedAmount} and {report:creditedAmount} formula tokens by @ishpaul777 in #100060
- Implement Mark all as read for all Inbox tab by @hungvu193 in #99830
Full Changelog: 9.4.74-2...9.4.75-3
9.4.75-3-staging
9.4.75-2-staging
9.4.75-1-staging
9.4.75-0-staging
What's Changed
- Fix stale policyID on the Travel page after upgrading from Book Travel by @Eskalifer1 in #99592
- [Payment due @mananjadhav] Read attachment migration flag with Onyx.connectWithoutView by @NicolasBonet in #100531
- [No QA] feat: add native span benchmark tooling by @chrispader in #98144
- [Batch 1] Migrate seven simple ConfirmModal call sites to useConfirmModal by @MelvinBot in #100285
- [No QA] Pin Hermes V1 version in artifacts iOS workflow by @mateuuszzzzz in #100572
- Let the base path decide the contact methods RHP background by @mukhrr in #100292
- chore(ci): cache Jest transforms in the Reassure perf jobs by @WojtekBoman in #100297
- Fix WS Settings - Track tax feature is cut off with link not accessible on landscape mode by @GCyganek in #99660
- [No QA] Remove comments that do not add context by @JakubKorytko in #100576
- Revert "Scope Top Spenders suggested search to eligible workspace policyIDs" by @MelvinBot in #99907
- Add travel billing feed selector by @allgandalf in #99527
- Upgrade Blacksmith checkout action by @iwiznia in #100619
- Fix bulk Pay/Mark as Paid disappearing for whole-report selections by @MelvinBot in #94075
- Use UserPill for the task Assignee row to match the expense Attendee row by @MelvinBot in #100280
- Fix infinite amount and pending rate when submitting a self DM distance expense quickly by @mukhrr in #99665
- fix: System message with no tag is shown by @truph01 in #86864
- refactor: the new-transaction highlight rail and the wide RHP width model by @TaduJR in #98744
- Fix green plus icon alignment in receipt empty state by @MelvinBot in #100249
- Implement invoice fields feature by @ShridharGoel in #93317
- [No QA] Revert accidental .github changes from #93317 by @ShridharGoel in #100684
- Move pre-selected cards to top of list in the spend rule card picker by @marufsharifi in #100298
- Count in-flight Pusher applies as applied when detecting update gaps by @adhorodyski in #99774
- [CP Staging] Fix Unable to scroll down to Save button when prompt field focused in landscape by @GCyganek in #100685
- Unpin #admin room when creating workspace when user already had paid one by @hungvu193 in #100278
- [No QA] Assert Home by heading role instead of ambiguous text selector by @kacper-mikolajczak in #100359
- refactor: extract MoneyRequestReportEmptyStateView by @sosek108 in #100024
- Add beta override switches to the Test Tool menu by @arekm213 in #99444
- [Performance] Pre-mount new expense destinations behind confirmation RHP by @JakubKorytko in #97874
- Add NumericField with NumericEditingController by @jmgraa in #99772
- Rules revamp: Standardize in-line delete experience by @Krishna2323 in #100570
- Part 7: Remove Onyx.connect() for the key: ONYXKEYS.PERSONAL_DETAILS_LIST in src/libs/actions/Report.ts by @lorretheboy in #99836
- Cut pre-paint work out of the Search router open path by @sumo-slonik in #100378
- Trim search term before deriving the phone/email search value in useSearchSelector by @MelvinBot in #100031
- Fix unread marker disappears after revealing Concierge history in side panel by @collectioneur in #100038
- Close the lock account confirm modal once the request finishes by @allgandalf in #98397
- Fix Side Panel backdrop stuck hidden on web (Concierge + FAB freeze on narrow layout) by @MelvinBot in #98982
- Add search field to domain group preferred workspace selectors by @jakubstec in #100147
- feat: add request access button to the domain access restricted screen by @jakubstec in #100319
- Fix: open Confirm Details when pressing Enter in empty focused search on Workspace Members invite by @MelvinBot in #98564
- [CP Staging] Fix expense card press in the report preview: torn-down thread and narrow-layout cascade by @wildan-m in #100688
- Upgrade Blacksmith checkout action to v1.7.0 by @iwiznia in #100718
- Skip the Continue setup step for a pending USD bank account by @MelvinBot in #100113
- feat: remove isNewManualExpenseFlowEnabled beta flag by @thelullabyy in #100215
MenuItemWithTopDescriptiondecomposition - simplest usages by @war-in in #100191- [No QA] Fix DualEntry casing on the Connections help site hub by @MelvinBot in #100617
- Show Enable Global Reimbursements modal on Corpay debit pay error by @ShridharGoel in #99341
- fix: use
getRootState, so notification waits until navigation is ready by @war-in in #100618 - [No QA] Bump Onyx to 3.0.111 by @fabioh8010 in #100681
- [Batch 2] Migrate workspace travel, workflows and company cards ConfirmModal usages to useConfirmModal by @MelvinBot in #100284
- Fix iOS scan crash with 30 HEIC images when creating expense by @nabi-ebrahimi in #99679
- [No QA] [NO QA] Update How-to-Export-Reports.md by @CortneyOfstad in #98460
- [NO QA] Add {report:debitedAmount} and {report:creditedAmount} formula tokens by @ishpaul777 in #100060
- Implement Mark all as read for all Inbox tab by @hungvu193 in #99830
Full Changelog: 9.4.74-0-staging...9.4.75-0-staging
9.4.74-2
What's Changed
- fix: disable report preview Submit button when strict workflow rules block submission by @kamronbek04 in #97946
- Finish typography token migration: alias remaining text styles, drop fontSizeH1, close the lint escape hatch by @MelvinBot in #100444
- [CP Staging] [No QA] Stop downloading react-native dSYMs in the deploy iOS build by @mountiny in #100507
- fix: make agent-device replays fail safely by @BartekObudzinski in #97555
- Fix landscape mode layout on Agents pages by @GCyganek in #97782
- [CP Staging] Revert "Fix: prevent dynamic route crash when "action" query param exists in both base path and suffix" by @mountiny in #100514
- Keep copilot receipts loading and stop 2-hour expiry check from endin… by @emkhalid in #98893
- [CP Staging] Hide Merge Reports functionality behind beta by @Gonals in #100523
- Floor lineHeightXSmall at 11 so small device font scales don't clip descenders and link underlines by @MelvinBot in #100448
- Refactor: migrate convertToDisplayString to useCurrencyListActions hook (part 20) by @shubham1206agra in #100201
- Remove the HTTP PusherPing heartbeat by @adhorodyski in #100296
- Fix duplicate distance rates after copying workspace settings by @neil-marcellini in #99678
- Duplicate GPS distance expenses as manual distance by @x-dev90 in #98189
- Fix cropped map after editing odometer in Distance flow by @x-dev90 in #96560
- [Payment due @getusha] Add bank statement and ssn requirements by @madmax330 in #98500
- [Home Page] Clean up Home's For you and Time sensitive sections by combining them by @adamgrzybowski in #100323
- [No QA] Update ProposalPolice handling of proposal updates by @roryabraham in #99467
- refactor: remove unsafe TextInputWithSymbol assertions by @KJ21-ENG in #98837
- refactor: remove unsafe AgreementsFullStep assertions by @KJ21-ENG in #98842
- [No QA] Add
CONSISTENCY-19- prop comment must add information rule by @JakubKorytko in #99906 - fix: remove unsafe assertions from receipt and settings flows by @KJ21-ENG in #98847
- Vertically center the condensed badge count in the LHN tab pill by @MelvinBot in #100443
- [No QA] Fix import/no-cycle - part 3 by @LukasMod in #99910
- [No QA] Expand integrationIcons render-array into explicit JSX in ExportedIconCell by @MelvinBot in #100262
- [No QA] Fix import/no-cycle - part 4 by @LukasMod in #100028
- [No QA] ci: ignore test calls in Onyx review workflow by @tgolen in #100525
- [No QA] Rebuild lint seatbelt pipeline outside ESLint by @roryabraham in #99259
- Navigate to the clicked expense in a multi-expense report preview (v2) by @wildan-m in #97308
- [No QA] Update help docs for Release 1: Violations by submitter by @MelvinBot in #99296
- [Merge ATS] Build the Recruiting page, provider card, and navigation by @bernhardoj in #100136
- perf: remove Promise.all gate before scan-to-confirmation navigation by @OlimpiaZurek in #99430
- [No QA] Docs updates for E/A#99201 Unique ID mapping for company card CSV import by @MelvinBot in #99797
- Resolve reports snapshot-first in Search bulk Delete and Reject by @VickyStash in #99047
- Split the confirmation footer by variants pt2 by @VickyStash in #100041
- fix: Tax - No autofocus in the name editing menu taxes by @TaduJR in #99757
- Treat an in-flight reconnect as covering the gap it is already fetching by @adhorodyski in #100320
- Show the auto-approval limit notice on the expense preview by @KioCoan in #99796
- fix (batch 5): isNewManualExpenseFlowEnabled beta flag regressions by @thelullabyy in #99947
- Claim
/oauth/native-callbackas an iOS universal link by @JakubKorytko in #100393 - fix: Restore all matching items selected label by @emkhalid in #99579
- Remove getPersonalDetailByEmail from buildPolicyData and getDisplayNameForWorkspace by @bernhardoj in #99652
- Part 3 - Audit usage of Str.removeSMSDomain by @FitseTLT in #100056
- Add "Reconciliation - All Expenses" export option for NewDot by @dukenv0307 in #99309
- Replace getPersonalDetailByEmail with usePersonalDetailByLogin for join request and modified expense actions by @bernhardoj in #98894
- Fix receipt full-res image not loading when preview displaces it in flow by @neerajbachani in #100423
- [No QA] Consolidate TypeScript projects under a root project with subproject references by @roryabraham in #100553
- [No QA][Onyx bump] Bump react-native-onyx from 3.0.109 to 3.0.110 by @sosek108 in #100385
- [No QA] Add Travel Groups and Roles documentation by @strepanier03 in #99005
- fix: Navigation bar translucency on Android by @chrispader in #87810
- refactor: remove isDraftReport and require isDraftChatReport in the track-expense flow by @daledah in #98960
- [No QA] Create Manage-Vendor-Matching-for-Xero.md by @stephanieelliott in #100458
- Clarify Approval Options When Held Expenses Exist And Fix Regressions by @mkzie2 in #83667
- Show a specific error when adding a domain-controlled work email during onboarding by @MelvinBot in #99108
New Contributors
- @kamronbek04 made their first contribution in #97946
Full Changelog: 9.4.73-3...9.4.74-2
9.4.74-0-staging
What's Changed
- fix: disable report preview Submit button when strict workflow rules block submission by @kamronbek04 in #97946
- Finish typography token migration: alias remaining text styles, drop fontSizeH1, close the lint escape hatch by @MelvinBot in #100444
- [CP Staging] [No QA] Stop downloading react-native dSYMs in the deploy iOS build by @mountiny in #100507
- fix: make agent-device replays fail safely by @BartekObudzinski in #97555
- Fix landscape mode layout on Agents pages by @GCyganek in #97782
- [CP Staging] Revert "Fix: prevent dynamic route crash when "action" query param exists in both base path and suffix" by @mountiny in #100514
- Keep copilot receipts loading and stop 2-hour expiry check from endin… by @emkhalid in #98893
- [CP Staging] Hide Merge Reports functionality behind beta by @Gonals in #100523
- Floor lineHeightXSmall at 11 so small device font scales don't clip descenders and link underlines by @MelvinBot in #100448
- Refactor: migrate convertToDisplayString to useCurrencyListActions hook (part 20) by @shubham1206agra in #100201
- Remove the HTTP PusherPing heartbeat by @adhorodyski in #100296
- Fix duplicate distance rates after copying workspace settings by @neil-marcellini in #99678
- Duplicate GPS distance expenses as manual distance by @x-dev90 in #98189
- Fix cropped map after editing odometer in Distance flow by @x-dev90 in #96560
- [Payment due @getusha] Add bank statement and ssn requirements by @madmax330 in #98500
- [Home Page] Clean up Home's For you and Time sensitive sections by combining them by @adamgrzybowski in #100323
- [No QA] Update ProposalPolice handling of proposal updates by @roryabraham in #99467
- refactor: remove unsafe TextInputWithSymbol assertions by @KJ21-ENG in #98837
- refactor: remove unsafe AgreementsFullStep assertions by @KJ21-ENG in #98842
- [No QA] Add
CONSISTENCY-19- prop comment must add information rule by @JakubKorytko in #99906 - fix: remove unsafe assertions from receipt and settings flows by @KJ21-ENG in #98847
- Vertically center the condensed badge count in the LHN tab pill by @MelvinBot in #100443
- [No QA] Fix import/no-cycle - part 3 by @LukasMod in #99910
- [No QA] Expand integrationIcons render-array into explicit JSX in ExportedIconCell by @MelvinBot in #100262
- [No QA] Fix import/no-cycle - part 4 by @LukasMod in #100028
- [No QA] ci: ignore test calls in Onyx review workflow by @tgolen in #100525
- [No QA] Rebuild lint seatbelt pipeline outside ESLint by @roryabraham in #99259
- Navigate to the clicked expense in a multi-expense report preview (v2) by @wildan-m in #97308
- [No QA] Update help docs for Release 1: Violations by submitter by @MelvinBot in #99296
- [Merge ATS] Build the Recruiting page, provider card, and navigation by @bernhardoj in #100136
- perf: remove Promise.all gate before scan-to-confirmation navigation by @OlimpiaZurek in #99430
- [No QA] Docs updates for E/A#99201 Unique ID mapping for company card CSV import by @MelvinBot in #99797
- Resolve reports snapshot-first in Search bulk Delete and Reject by @VickyStash in #99047
- Split the confirmation footer by variants pt2 by @VickyStash in #100041
- fix: Tax - No autofocus in the name editing menu taxes by @TaduJR in #99757
- Treat an in-flight reconnect as covering the gap it is already fetching by @adhorodyski in #100320
- Show the auto-approval limit notice on the expense preview by @KioCoan in #99796
- fix (batch 5): isNewManualExpenseFlowEnabled beta flag regressions by @thelullabyy in #99947
- Claim
/oauth/native-callbackas an iOS universal link by @JakubKorytko in #100393 - fix: Restore all matching items selected label by @emkhalid in #99579
- Remove getPersonalDetailByEmail from buildPolicyData and getDisplayNameForWorkspace by @bernhardoj in #99652
- Part 3 - Audit usage of Str.removeSMSDomain by @FitseTLT in #100056
- Add "Reconciliation - All Expenses" export option for NewDot by @dukenv0307 in #99309
- Replace getPersonalDetailByEmail with usePersonalDetailByLogin for join request and modified expense actions by @bernhardoj in #98894
- Fix receipt full-res image not loading when preview displaces it in flow by @neerajbachani in #100423
- [No QA] Consolidate TypeScript projects under a root project with subproject references by @roryabraham in #100553
- [No QA][Onyx bump] Bump react-native-onyx from 3.0.109 to 3.0.110 by @sosek108 in #100385
- [No QA] Add Travel Groups and Roles documentation by @strepanier03 in #99005
- fix: Navigation bar translucency on Android by @chrispader in #87810
- refactor: remove isDraftReport and require isDraftChatReport in the track-expense flow by @daledah in #98960
- [No QA] Create Manage-Vendor-Matching-for-Xero.md by @stephanieelliott in #100458
- Clarify Approval Options When Held Expenses Exist And Fix Regressions by @mkzie2 in #83667
- Show a specific error when adding a domain-controlled work email during onboarding by @MelvinBot in #99108
New Contributors
- @kamronbek04 made their first contribution in #97946
Full Changelog: 9.4.73-0-staging...9.4.74-0-staging
9.4.73-3
What's Changed
- fix: only fall back to group policy for expense sign when no report exists by @M00rish in #99434
- [NoQA] Add a join.ad macro for the post-sign-in Join step by @kacper-mikolajczak in #100092
- Reset css height/maxHeight values to default when animation stops by @s77rt in #100356
- Stop showing the LHN RBR, Fix badge and To-do for companyCardRequired after submit by @MelvinBot in #100190
- Read the added-expense violations snapshot for the Search Violations column by @neil-marcellini in #99979
- [No QA] Update help docs for Releases 1-5: DualEntry integration by @MelvinBot in #99607
- [No QA] Add Accessibility page to HelpDot by @rushatgabhane in #96664
- fix: hide tax row on per diem and time split expenses (#99200) by @truph01 in #99756
- [cp stag & prod] Derive the next Search page from the snapshot cursor by @mukhrr in #100144
- fix: Outstanding report can be selected on confirm page, but expense is created in another report by @nkdengineer in #100066
- [No QA] Docs updates for E/A#95005 Cancel a pending P2P wallet payment by @MelvinBot in #98928
- [No QA] Update Explore-whats-changed-in-New-Expensify.md by @brianlee-expensify in #99690
- [No QA] Docs updates for E/A#99015 rename Subscription empty-state button to Add card by @MelvinBot in #99366
- [No QA] Update Merge-Accounts.md by @brianlee-expensify in #99484
- [No QA] [NoQA] Docs updates for E/A#98521 Export status window returns after page refresh by @MelvinBot in #99954
- [No QA] Docs updates for E/A#98509 linking existing card feed to non-USD workspace by @MelvinBot in #99706
- [No QA] Docs updates for E/A#97094 Show GL codes in tag picker setting by @MelvinBot in #98474
- [No QA] Docs updates for E/A#97083 note comma values need quotes in search by @MelvinBot in #98475
- [No QA] Docs updates for E/A#98622 document bank connection re-authentication error by @MelvinBot in #99476
- [Payment due @situchan] [No QA] Docs updates for E/A#97401 Settle balance confirmation step by @MelvinBot in #99705
- Docs updates for E/A#94093 add Default supplier to Xero export settings by @MelvinBot in #96538
- [No QA] Update Manage-Copilot-Access.md by @brianlee-expensify in #99487
- [No QA] Update Act-as-a-Copilot.md by @brianlee-expensify in #99489
- [No QA] Docs updates for E/A#99992 document Paid by column and filter by @MelvinBot in #100057
- [No QA] Docs updates for E/A#98489 domain already set up and admin access by @MelvinBot in #100096
- [No QA] Update Edit-Expenses.md by @brianlee-expensify in #100078
- [No QA] Docs updates for E/A#98887 Submit workspace creation via emailed deeplink by @MelvinBot in #100097
- [No QA] Docs updates for E/A#99644 document locked cash expense default on splits by @MelvinBot in #100109
- Docs updates for E/A#97423 Clarify who can add a receipt to an expense by @MelvinBot in #99959
- Remove legacy backTo fallback from goBackFromExportConnection by @MelvinBot in #100265
- Fix cross-Domain Search Router navigation by @nabi-ebrahimi in #100150
- Fix Expensify links in chat that use single quotes by @deetergp in #99808
- Hide Home loading bar while offline by @MelvinBot in #100011
- Use narrow layout in landscape mode mWeb by @GCyganek in #97880
- refactor: thread onboarding status through createTransactionThreadReport callers by @daledah in #100213
- [No QA] Claim the sequential queue read gate for deferred writes by @Abdukhamid000 in #99815
- [No QA] Update conciergeChat to remove Onyx.connect - 41 by @cretadn22 in #100307
- Add category tax defaults to Expense defaults by @Krishna2323 in #99420
- feat: add require company cards toggle to rules revamp by @Krishna2323 in #100241
- [Payment due @suneox] Treat invalid search status filter as if there is no filter at all by @jjcoffee in #100162
- Align distance rates toggle switches with the page's right inset by @MelvinBot in #100143
- fix: stop showing the canceled status on expense previews by @Krishna2323 in #99097
- Fix unresponsive LHN report tap after returning to Inbox from a Settings RHP by @fedirjh in #100167
- fix: Subscription page becomes blank after deleting workspace by @nkdengineer in #99911
- feat: implement Merge Reports RHP and action menu by @dmkt9 in #95658
- Shorten commuter exclusion option copy by @fedirjh in #100211
- fix: After deleting expense row on group empty row appears by @nkdengineer in #100282
- [NO QA] Fix ESLint check on main: complete buildForm in VendorMatchingMerchantRulesTest by @MelvinBot in #100398
- Hide the approval workflow UI when a DEW sets dynamicExternalWorkflowHidePeople by @MelvinBot in #100138
- [No QA] refactor: replace shouldUseStagingServer with a tri-state activeServer (part 1/5) by @sharabai in #99926
- Fix: prevent dynamic route crash when "action" query param exists in both base path and suffix by @MelvinBot in #98949
- fix: Code does not arrive when adding contact method with new user by @nkdengineer in #99909
- CompactAvatar + multi-select rows by @jmusial in #99421
- [CP Staging] Fix stale/missing receipt page count badge across distance edits by @ishpaul777 in #100357
- [CP staging] Revert "Allow any workspace admin to pay reports" by @chuckdries in #100354
- [NO QA] Update CONTRIBUTING.md by @mallenexpensify in #100412
- [No QA] Move Sage Intacct vendor matching docs to main navetation by @stephanieelliott in #100366
- MenuItem decomposition -
outerWrapperStylecases by @war-in in #99915 - [No QA] Fix import/no-cycle - part 2 by @LukasMod in #99768
- [No QA] fix: update Knip for Bun shell interpolation by @chrispader in #100329
- [No QA] Clarify why the Workspaces tab resets to WorkspaceInitialPage on narrow layouts by @MelvinBot in #100321
- Fix card-issued link resolving against the active route by @mukhrr in #98406
- [No QA] Fix stale artifacts cache on iOS by @mateuuszzzzz in #99185
- [No QA] Consume react-native dSYMS in CI workflows by @mateuuszzzzz in #98853
- Update getReportPreviewAction function to pass getCleanUpTransactionThreadReportOnyxData - 2 by @cretadn22 in #99036
- [No QA] Fix import/no-cycle - part 1 - follow up by @LukasMod in #100009
- Fix/96257 relaid optimistic scan failed move by @yusufdeveloper2903 in #99328
- [No QA] Add policy vendors Onyx collection type by @Beamanator in #100240
- [No QA] Update AI Agent help docs by @MelvinBot in #100263
- [No QA] [Hold for feature] [No QA] Docs updates for E/A#99758 Intuit Enterprise Suite now available to all workspaces by @MelvinBot in #99799
- Pass issue_card reasonCode when issuing an Expensify card by @chuckdries in #100430
- [No QA] Use OXC to transform Reassure perf tests by @roryabraham in #100429
- [No QA] Don't inject SENTRY_RELEASE into every chunk by @collectioneur in #100175
- [Payment due @suneox] fix: skip export-again warning for manual exports by @MelvinBot in #99982
- [No QA] Correct Expensify Travel plan availability in help article by @MelvinBot in #100229
- Fix - travel legacy request-access path skips the confirm modal after verification by @jmusial in #99182
- [No QA] add MoneyRequestReportActionsList performance test by @sosek108 in #100023
- Fix: preserve untouched tag levels when bulk-editing a single tag level...