9.3.26-8

Expensify/App9.3.26-8Feb 27, 2026by github-actions[bot]

AI Summary

This patch release includes multiple bug fixes, performance improvements, and new features for Expensify App. Key improvements include React Compiler optimization, various UI/UX fixes for expense handling, and new accounting integration capabilities.

Key Highlights

  • React Compiler Batch 2 optimization for improved performance
  • Added bulk export functionality to accounting integration
  • Implemented overTripLimit violation for expense tracking
  • Added image capture for odometer on native platforms
  • Fixed Travel Invoicing toggle incorrectly enabled by root-level card settings

New Features

  • Add getCardAssignmentDateOption util method
  • Handle Distance and Rate fields for splits
  • Add bulk export to accounting integration
  • Add Approver row on member invite confirmation page
  • Show Client ID field in workspace overview screen
  • Add search pie chart component
  • Odometer image capture for native platforms
  • Allow full Copilot users to access Expensify Card pages
  • Domain control: Enable, disable or reset 2FA
  • Add Duplicate report option to report More menu
  • Add Scan flow Camera init telemetry

Full Release Notes

## What's Changed
* Merging main to resolve help doc build error  by @stephanieelliott in https://github.com/Expensify/App/pull/81365
* [No QA] React Compiler Batch 2 by @roryabraham in https://github.com/Expensify/App/pull/82880
* [No QA] Remove Performance.tsx (replaced by Sentry) by @roryabraham in https://github.com/Expensify/App/pull/83114
* [No QA] Add reasonAttributes to ActivityIndicator in image-loading contexts by @sosek108 in https://github.com/Expensify/App/pull/82927
* Revert doesReportReceiverMatchParticipant to fix B2B invoice sending by @MelvinBot in https://github.com/Expensify/App/pull/82760
* Implemented overTripLimit violation (part 2) by @shubham1206agra in https://github.com/Expensify/App/pull/82816
* [No QA] Fix bash errors in set pusher script by @rafecolton in https://github.com/Expensify/App/pull/83266
* [No QA] Fix Android build artifact paths and remove flawed retry by @roryabraham in https://github.com/Expensify/App/pull/83244
* [No QA] Update help article app store links by @MelvinBot in https://github.com/Expensify/App/pull/83100
* [No QA] Delete docs/articles/new-expensify/reports-and-expenses/Split-Persona… by @garrettmknight in https://github.com/Expensify/App/pull/80563
* fix: Timezone is not specified, only GMT is shown by @daledah in https://github.com/Expensify/App/pull/82983
* [No QA] Commit prettier diff on main by @chuckdries in https://github.com/Expensify/App/pull/83283
* [No QA] Fix Rock Android staging deploy artifact detection by @roryabraham in https://github.com/Expensify/App/pull/83282
* Small helpsite updates by @stephanieelliott in https://github.com/Expensify/App/pull/83286
* Refactor ConfirmModal to useConfirmModal | Batch 1 by @mohammadjafarinejad in https://github.com/Expensify/App/pull/77646
* [No QA] Update Duplicate-Workspace.md by @stephanieelliott in https://github.com/Expensify/App/pull/82884
* [No QA] Fix Android staging deploy: build AAB for Release variant by @roryabraham in https://github.com/Expensify/App/pull/83288
* Add getCardAssignmentDateOption util method by @carlosmiceli in https://github.com/Expensify/App/pull/82707
* [NO QA] Create DynamicVerifyAccountPage Component (BATCH-4) v2 by @WojtekBoman in https://github.com/Expensify/App/pull/82256
* [NoQA] fix: proposal police false-flagging GH bots and comments (second follow-up) by @ikevin127 in https://github.com/Expensify/App/pull/83279
* [Domain control] Add domainAccountID parameter to DeleteDomainMember by @rayane-d in https://github.com/Expensify/App/pull/82938
* feat: handle the Distance and Rate fields for splits by @ZhenjaHorbach in https://github.com/Expensify/App/pull/82257
* [NO QA] Write Unit Tests for Dynamic Routing Logic (BATCH-6) by @collectioneur in https://github.com/Expensify/App/pull/81505
* Migrate First verify-account Route (BATCH-5) by @collectioneur in https://github.com/Expensify/App/pull/81413
* #3 - Get the billing grace end period collection with useOnyx by @bernhardoj in https://github.com/Expensify/App/pull/83054
* #4 - Get the billing grace end period collection with useOnyx by @bernhardoj in https://github.com/Expensify/App/pull/83060
* [CP Staging] Fixed weird ghost users crash by @shubham1206agra in https://github.com/Expensify/App/pull/83310
* refactor createTransactionThreadReport to use introSelected from useOnyx by @dukenv0307 in https://github.com/Expensify/App/pull/83173
* Fix Travel Invoicing toggle incorrectly enabled by root-level card settings by @MelvinBot in https://github.com/Expensify/App/pull/83248
* [No QA] Improve performance of `isFilterSupported` by @luacmartins in https://github.com/Expensify/App/pull/83241
* Remove Onyx.connect() for the key: ONYXKEYS.NVP_RECENT_WAYPOINTS from createTransaction function by @Guccio163 in https://github.com/Expensify/App/pull/82548
* Fix To-do search results disappearing when sort is clicked by @MelvinBot in https://github.com/Expensify/App/pull/83074
* Remove Onyx.connect() for the key: ONYXKEYS.NVP_RECENT_WAYPOINTS from handleMoneyRequestStepDistanceNavigation function by @Guccio163 in https://github.com/Expensify/App/pull/82547
* Fix empty receipt state styling by @ShridharGoel in https://github.com/Expensify/App/pull/83311
* fix: reject modal is missing in small screen by @truph01 in https://github.com/Expensify/App/pull/82473
* Suggested response buttons style update by @jmusial in https://github.com/Expensify/App/pull/83048
* [CP Staging] reverts #70825 by @mkzie2 in https://github.com/Expensify/App/pull/83334
* Decompose Expensify.tsx from delegate access, Fullstory init, screen share and priority mode by @adhorodyski in https://github.com/Expensify/App/pull/83307
* fix: [Accessibility][Tracking] Focus Management by @TaduJR in https://github.com/Expensify/App/pull/81436
* [No QA] perf: replace PersonalDetails selectors with hooks to avoid expensive deepEqual by @TMisiukiewicz in https://github.com/Expensify/App/pull/82646
* Fix: Replace `InviteMemberListItem` with `SingleSelectWithAvatarListItem` on `DomainAddAdminPage` by @PiyushChandra17 in https://github.com/Expensify/App/pull/81815
* Fix identity not being sent to Group-IB FP after authentication by @cristipaval in https://github.com/Expensify/App/pull/82675
* Added correct announcements for Language picker on native platforms by @Uzaifm127 in https://github.com/Expensify/App/pull/81013
* [CP Staging] Restore You/Me search matching for current user in From filter by @MelvinBot in https://github.com/Expensify/App/pull/83291
* [CP Staging] Dedupe approval workflow members by @Beamanator in https://github.com/Expensify/App/pull/83336
* [NO QA] Reduce re-renders & remove global reports subscription in report action list by @JS00001 in https://github.com/Expensify/App/pull/82684
* Fix wallet statement PDF download on hybrid app by @MelvinBot in https://github.com/Expensify/App/pull/83234
* [No QA] Bump ESLint max-warnings threshold from 381 to 383 by @chuckdries in https://github.com/Expensify/App/pull/83348
* Part 3 - Update `canCurrentUserOpenReport` & `shouldCreateNewMoneyRequestReport` to accept betas. by @Krishna2323 in https://github.com/Expensify/App/pull/83134
* Remove `Onyx.connect()` for the key: `ONYXKEYS.COLLECTION.REPORT` in `OptionsListUtils.ts` by @abzokhattab in https://github.com/Expensify/App/pull/78645
* refactor createDistanceRequest to use perfonsalDetails from useOnyx by @dukenv0307 in https://github.com/Expensify/App/pull/80730
* Bump onyx to 3.0.39 by @JKobrynski in https://github.com/Expensify/App/pull/83210
* [NO QA] Remove duplicate element in styles dependency array by @carlosmiceli in https://github.com/Expensify/App/pull/83201
* Update company card promo image by @nyomanjyotisa in https://github.com/Expensify/App/pull/82609
* Refactor: make getForReportAction a pure function that accepts currentUserLogin by @linhvovan29546 in https://github.com/Expensify/App/pull/83171
* [Odometer] Image capture for native by @jakubkalinski0 in https://github.com/Expensify/App/pull/82432
* Migrate migrated user welcome modal redirect to navigation guard by @TMisiukiewicz in https://github.com/Expensify/App/pull/82805
* [NO QA] Update NAVIGATION.md with Dynamic Routes Documentation (BATCH-7) by @collectioneur in https://github.com/Expensify/App/pull/81859
* Revert "Merge pull request #82987 from lorretheboy/fix/82594" by @dangrous in https://github.com/Expensify/App/pull/83355
* [No QA] fix: iOS deploy uploading wrong IPA to TestFlight by @roryabraham in https://github.com/Expensify/App/pull/83350
* fix: the page title does not describe the purpose of page by @daledah in https://github.com/Expensify/App/pull/81150
* Revert "Fix screen reader focus not moving to opened menu on mWeb" by @Julesssss in https://github.com/Expensify/App/pull/83376
* [No QA] test: fix IOURequestStepConfirmationPageTest failures by @roryabraham in https://github.com/Expensify/App/pull/83379
* Fix: "Attachment can't be downloaded" error when downloading receipt by @linhvovan29546 in https://github.com/Expensify/App/pull/82479
* perf: Remove violations from MoneyRequestReportView by @rlinoz in https://github.com/Expensify/App/pull/82810
* fix: no tooltip appears, when user hover over the option by @daledah in https://github.com/Expensify/App/pull/81248
* [No QA] Fix ts on main by @luacmartins in https://github.com/Expensify/App/pull/83390
* [No QA] Fix return behavior of OnyxUpdates apply() for side effect requests by @chuckdries in https://github.com/Expensify/App/pull/83391
* fix: submit button is present after creating a scan expense with missing amount and missing merchant by @mkzie2 in https://github.com/Expensify/App/pull/69218
* [NO QA] Add Onyx skill by @youssef-lr in https://github.com/Expensify/App/pull/81366
* [No QA] Update billing articles  by @stephanieelliott in https://github.com/Expensify/App/pull/82886
* [No QA] Create Reimbursement-Payment-Methods.md by @stephanieelliott in https://github.com/Expensify/App/pull/83020
* [No QA][Sentry] Add activeSpans logs  by @sosek108 in https://github.com/Expensify/App/pull/80645
* [CP Staging] Add Scan flow Camera init telemetry by @marcaaron in https://github.com/Expensify/App/pull/83275
* fix: Android - Reports - "0,00" shown on expense preview after being moved to new report offline. by @annaweber830 in https://github.com/Expensify/App/pull/83141
* Add search pie chart component by @borys3kk in https://github.com/Expensify/App/pull/81000
* Fixed missing accountID field when creating Setup Specialist details by @shubham1206agra in https://github.com/Expensify/App/pull/83338
* [No QA] fix: Remove runPrettier.sh wrapper and disable experimental CLI cache by @MelvinBot in https://github.com/Expensify/App/pull/83374
* Split contexts to state and actions - Batch 3 by @staszekscp in https://github.com/Expensify/App/pull/82631
* [No QA] Update Merging-expenses.md by @OfstadC in https://github.com/Expensify/App/pull/82949
* Remove useOptionsList in SearchRouter component by @hoangzinh in https://github.com/Expensify/App/pull/82656
* [CFI] Approved! - Show the Client ID field in the workspace overview screen by @allgandalf in https://github.com/Expensify/App/pull/80411
* fix: invisible dates from previout/next month are focused, nothing an… by @daledah in https://github.com/Expensify/App/pull/81377
* Allow full Copilot users to access Expensify Card pages by @MelvinBot in https://github.com/Expensify/App/pull/81817
* [Release 3.2] [Domain control] Enable, disable or reset their 2FA by @war-in in https://github.com/Expensify/App/pull/82135
* perf: Optimize MoneyRequestReportTransactionItem by @rlinoz in https://github.com/Expensify/App/pull/82560
* Attachments carousel loading optimizations by @szymonzalarski98 in https://github.com/Expensify/App/pull/83185
* [No QA] Create Fringe Benefits DEW help page for NewDot by @heyjennahay in https://github.com/Expensify/App/pull/81537
* Remove interactive role and double announcement for switches by @Uzaifm127 in https://github.com/Expensify/App/pull/80765
* [No QA][Duplicate Report] Add "Duplicate report" option to the report More menu with visibility logic. by @Krishna2323 in https://github.com/Expensify/App/pull/82733
* fix: Category toggle visually switches while scrolling by @paulnjs in https://github.com/Expensify/App/pull/83050
* [No QA] Reduce search drawDistance by @luacmartins in https://github.com/Expensify/App/pull/83277
* chore: Migrate icons UI controls & actions to lazy loading by @tdy2k in https://github.com/Expensify/App/pull/80440
* Remove Onyx.connect() for the key: ONYXKEYS.NVP_RECENT_WAYPOINTS from handleMoneyRequestStepScanParticipants function by @Guccio163 in https://github.com/Expensify/App/pull/83328
* Add bulk export to accounting integration by @huult in https://github.com/Expensify/App/pull/81421
* feat: [CFI] Add Approver row on the member invite confirmation page by @TaduJR in https://github.com/Expensify/App/pull/82683
* fix: The Expense Policy RHP auto-closes unexpectedly by @paulnjs in https://github.com/Expensify/App/pull/81313
* fix: bank account missing right caret by @daledah in https://github.com/Expensify/App/pull/82980
* Reports: Fix CSV card showing ID instead of card name in saved search by @marufsharifi in https://github.com/Expensify/App/pull/82100
* Refactor: Deprecate getPolicy (part 16) by @shubham1206agra in https://github.com/Expensify/App/pull/83161
* [No QA][Sentry] Forward logs around reauthenticate flow by @sosek108 in https://github.com/Expensify/App/pull/83300
* [NoQA] Refactor: split contexts to state and actions for SearchContext by @sharabai in https://github.com/Expensify/App/pull/83206
* Fix/80171 - Contact list does not auto load unless scrolled up by @dmkt9 in https://github.com/Expensify/App/pull/81284
* Fix missing Concierge Chat in LHN when accessing via DM link by @marufsharifi in https://github.com/Expensify/App/pull/81934
* fix: un-report the transactions on the report (move to selfDM) when delete  by @lorretheboy in https://github.com/Expensify/App/pull/82619
* show not found page for deleted duplicate expense. by @marufsharifi in https://github.com/Expensify/App/pull/79530
* [Part 8]Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/actions/Report.ts  by @linhvovan29546 in https://github.com/Expensify/App/pull/82482
* Change accounting section into multiple sections by @ShridharGoel in https://github.com/Expensify/App/pull/82030
* fix: distance edited is not updated in 1:1 chat but updated amount is shown by @thelullabyy in https://github.com/Expensify/App/pull/78862
* Add `SearchForUsers` command and use it when searching for members by @fedirjh in https://github.com/Expensify/App/pull/78743
* Don't show RBR for open reports with DEW submit error to admins/managers by @francoisl in https://github.com/Expensify/App/pull/83289
* fix: add copilot list does not load when scrolled to the bottom by @daledah in https://github.com/Expensify/App/pull/82077
* refactor createWorkspace to use isSelfTourViewed from useOnyx by @dukenv0307 in https://github.com/Expensify/App/pull/80979
* Update Mobile-Expensify submodule to 9.3.25-13 by @puneetlath in https://github.com/Expensify/App/pull/83462

## New Contributors
* @tdy2k made their first contribution in https://github.com/Expensify/App/pull/80440

**Full Changelog**: https://github.com/Expensify/App/compare/9.3.25-13...9.3.26-8