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