9.4.53-10

Expensify/App9.4.53-10Aug 14, 2026by github-actions[bot]

AI Summary

This release upgrades React Native to 0.86.0 and continues a widespread effort to remove Onyx.connect() calls for performance optimization. It includes UI fixes for date rendering, expense selection, and the introduction of Canadian Multiple Tax Export templates.

Key Highlights

  • Upgrade React Native to version 0.86.0
  • Remove Onyx.connect() usage across multiple modules for performance
  • Fix Spend tab date rendering after locale switching
  • Fix 'Not Here' page flashing when navigating back to workspace chat
  • Add Canadian Multiple Tax Export template for CAD workspaces

New Features

  • Add Canadian Multiple Tax Export template for workspaces using CAD
  • Add 'Download workflows' button to Workflows More menu
  • Add DualEntry integration import pages

Full Release Notes

## What's Changed
* upgrade react native to 0.86.0 by @jakubstec in https://github.com/Expensify/App/pull/96372
* Fix Spend tab date rendering in the previous language after a locale switch by @roryabraham in https://github.com/Expensify/App/pull/98075
* [No QA] Document that OSBotify bumps the Mobile-Expensify submodule pointer by @Julesssss in https://github.com/Expensify/App/pull/98163
* Remove AI-generated jargon from comments [No QA] by @marcaaron in https://github.com/Expensify/App/pull/98062
* [No QA] Use server agent identity in App by @ShridharGoel in https://github.com/Expensify/App/pull/98151
* Fix Require receipts amount reverting when both amounts are saved together by @wildan-m in https://github.com/Expensify/App/pull/97630
* [No QA] Rename BugZero Checklist to Contributor+ Checklist by @allgandalf in https://github.com/Expensify/App/pull/93986
* [No QA] Fix CP retest filer skipped on every staging deploy by @jasperhuangg in https://github.com/Expensify/App/pull/98205
* "Not Here" page briefly flashes when navigating back to workspace chat after merging with a self-DM expense by @lorretheboy in https://github.com/Expensify/App/pull/97304
* [No QA] Update iOS build workflows to Xcode 26.6 by @war-in in https://github.com/Expensify/App/pull/97774
* [Payment due @huult] Allow the Bank account filter on Expensify Card statement exports by @ishpaul777 in https://github.com/Expensify/App/pull/98128
* [No QA] fix: introduce `useStartSpansOnRender` hook that registers spans on first render by @war-in in https://github.com/Expensify/App/pull/97885
* Remove Onyx.connect() usage for ONYXKEYS.COLLECTION.REPORTS from src/libs/actions/IOU/Transaction.ts by @Guccio163 in https://github.com/Expensify/App/pull/93734
* [No QA] Update help docs for Release 2: the new free Submit workspace by @MelvinBot in https://github.com/Expensify/App/pull/92944
* Fix selection jump in rule and currency pickers by @marufsharifi in https://github.com/Expensify/App/pull/96587
* [No QA] Skip report collection scan in useSelfDMReport when cached ID exists by @VickyStash in https://github.com/Expensify/App/pull/98134
* 83362 migrate settings profile part 2 v2 by @huult in https://github.com/Expensify/App/pull/97526
* [No QA] Fix OnyxDerived compute span parenting by @TMisiukiewicz in https://github.com/Expensify/App/pull/98141
* Migrate money request time step to dynamic routes (#83850 part 2 by @suneox in https://github.com/Expensify/App/pull/97762
* [No QA] Settle agent-device drive actions and preserve sign-in replay diagnostics by @kacper-mikolajczak in https://github.com/Expensify/App/pull/98094
* Show the More option on every Rules tab by @Krishna2323 in https://github.com/Expensify/App/pull/98056
* Add DualEntry integration import pages by @s77rt in https://github.com/Expensify/App/pull/97506
* Implement policy changelog report action system messages for: Categories: Enabling/Disabling "Require description" and "Require attendees" by @rayane-d in https://github.com/Expensify/App/pull/97919
* [Payment due @QichenZhu] Add partner manager and guide Book a call buttons by @c3024 in https://github.com/Expensify/App/pull/97486
* Replaced Str.removeSMSDomain with formatPhoneNumber in temporaryGetDisplayNameOrDefault by @shubham1206agra in https://github.com/Expensify/App/pull/97995
* [No QA] Align artifacts ruby scripts with RN 0.86 by @mateuuszzzzz in https://github.com/Expensify/App/pull/98293
* fix: Preserve all matching selection after deselecting an expense by @emkhalid in https://github.com/Expensify/App/pull/95902
* [Payment due @situchan] Refactor Requestor PersonalInfo loader to ActivityIndicator by @MelvinBot in https://github.com/Expensify/App/pull/96837
* Move short mention logins cache out of PersonalDetailsUtils by @adhorodyski in https://github.com/Expensify/App/pull/98157
* Show Pay option in bulk actions dropdown while offline by @MelvinBot in https://github.com/Expensify/App/pull/97942
* fix: dedupe OpenApp against an in-flight OpenApp by @BartekObudzinski in https://github.com/Expensify/App/pull/98266
* (Part 6) Remove Onyx.connect() for the key: ONYXKEYS.PERSONAL_DETAILS_LIST in src/libs/actions/Report.ts by @lorretheboy in https://github.com/Expensify/App/pull/96355
* [cp staging] Revert https://github.com/Expensify/App/pull/96942 by @JS00001 in https://github.com/Expensify/App/pull/98338
* Migrate report secondary actions archived checks by @ShridharGoel in https://github.com/Expensify/App/pull/96242
* [No QA] Clean up unsafe type assertions in tests by @KJ21-ENG in https://github.com/Expensify/App/pull/97510
* [NOQA] perf: restore thumbnail-gate span and attribute the confirmation receipt load by @OlimpiaZurek in https://github.com/Expensify/App/pull/97850
* [Part 25] Remove Onyx.connect from LocalePhoneNumber by @marufsharifi in https://github.com/Expensify/App/pull/97680
* [No QA] Remove unsafe type assertions from ten test files by @KJ21-ENG in https://github.com/Expensify/App/pull/97284
* Keep icon for 3 suggested rules after copy update by @yuwenmemon in https://github.com/Expensify/App/pull/98199
* Part 14 - Set delegateAccountID on hold/unhold/reject optimistic report actions by @Krishna2323 in https://github.com/Expensify/App/pull/97227
* Migrate outstanding report archived checks by @ShridharGoel in https://github.com/Expensify/App/pull/96244
* Concierge optimistic reveal: flat cadence by @MelvinBot in https://github.com/Expensify/App/pull/96508
* [Part 27] Remove Onyx.connect from LocalePhoneNumber by @marufsharifi in https://github.com/Expensify/App/pull/97800
* Update getReportPreviewAction function to pass getCleanUpTransactionThreadReportOnyxData - 1 by @cretadn22 in https://github.com/Expensify/App/pull/97996
* [CP stag] Revert "[Insights: Violations]: Expanding group & Suggested search" by @jasperhuangg in https://github.com/Expensify/App/pull/98345
* Defer image loading and use original receipt image by @bernhardoj in https://github.com/Expensify/App/pull/97313
* Refactor avatar tooltips to remove shouldShowTooltip by @jmusial in https://github.com/Expensify/App/pull/97961
* [CP Stg][No QA] Fix prebuilt RN artifacts to work on both RN 0.85.3 and 0.86 by @roryabraham in https://github.com/Expensify/App/pull/98352
* [Bug] Submit workspace - Fix upgrade during member import by @emkhalid in https://github.com/Expensify/App/pull/97232
* [cp staging] Revert #97005 by @JS00001 in https://github.com/Expensify/App/pull/98346
* Add tag GL code display in tag picker by @neerajbachani in https://github.com/Expensify/App/pull/97094
* Fix: "disabled submissions" system message thread header shows "turned Scheduled Submit off" by @rayane-d in https://github.com/Expensify/App/pull/98340
* Quote contextual search values containing a comma by @mukhrr in https://github.com/Expensify/App/pull/97083
* feat: Add ManualSendMessageVisible by @LukasMod in https://github.com/Expensify/App/pull/97789
* [No QA] Fail loudly when a Mobile-Expensify PR has cherry-pick conflicts by @roryabraham in https://github.com/Expensify/App/pull/98366
* Revert "Fix: "disabled submissions" system message thread header shows "turned Scheduled Submit off"" by @stitesExpensify in https://github.com/Expensify/App/pull/98375
* Fixed toLocaleOrdinal by using Intl.PluralRules instead of fixed rules by @shubham1206agra in https://github.com/Expensify/App/pull/98265
* [No QA] Docs updates for E/A#96042 Search navigation suggestions by @MelvinBot in https://github.com/Expensify/App/pull/96714
* [No QA] Create Suggested agent rules reference doc by @stephanieelliott in https://github.com/Expensify/App/pull/97941
* Fix: "disabled submissions" system message thread header shows "turned Scheduled Submit off" by @stitesExpensify in https://github.com/Expensify/App/pull/98376
* Fix: use server-rendered message for moved-report action when destination policy is unavailable locally by @MelvinBot in https://github.com/Expensify/App/pull/98238
* [No QA] Revise Expensify training webinar details and links by @RachCHopkins in https://github.com/Expensify/App/pull/98267
* [No QA] Drop obsolete expo-modules-jsi Xcode 26.2 type-inference patch by @MelvinBot in https://github.com/Expensify/App/pull/98379
* [No QA] Disable redux devtools by default by @VickyStash in https://github.com/Expensify/App/pull/98399
* [Payment due @abzokhattab] Add vendorID action field to merchant coding rules (vendor matching R5, Phase B) by @MelvinBot in https://github.com/Expensify/App/pull/97811
* [CP Staging] Remove TOP_MERCHANTS from HOME_INSIGHT_KEYS by @ZhenjaHorbach in https://github.com/Expensify/App/pull/98354
* Add "Download workflows" button to Workflows More menu by @MelvinBot in https://github.com/Expensify/App/pull/98161
* Add Canadian Multiple Tax Export template to New Expensify for workspaces using CAD by @dukenv0307 in https://github.com/Expensify/App/pull/97853
* Persist require fields tooltip dismissal and keep a direction always selected by @Krishna2323 in https://github.com/Expensify/App/pull/97726
* Expand feed removal confirmation copy to mention deleted unsubmitted transactions by @MelvinBot in https://github.com/Expensify/App/pull/98307
* Fix Rules revamp regressions on Collect workspaces by @Krishna2323 in https://github.com/Expensify/App/pull/98236
* Clear stale approvalWorkflow when abandoning create flow by @rinej in https://github.com/Expensify/App/pull/98143
* Add alternate route for map-based mileage expenses by @GCyganek in https://github.com/Expensify/App/pull/96169
* Resolve PER_DIEM policyTags in createExpenseByType from the caller's … by @Guccio163 in https://github.com/Expensify/App/pull/98309
* [No QA] Make the html-entities worklet patch idempotent by @roryabraham in https://github.com/Expensify/App/pull/98395
* fix: Learn more banner is broken after rotating device to portrait by @nkdengineer in https://github.com/Expensify/App/pull/97953
* Fix distance row unit labels by @fedirjh in https://github.com/Expensify/App/pull/98350
* [Commuter Mileage Exclusion] Fix distance tab visibility by @fedirjh in https://github.com/Expensify/App/pull/98287
* [Commuter Mileage Exclusion] Block invalid distance report moves by @fedirjh in https://github.com/Expensify/App/pull/98281
* Fix: Total spend footer does not always appear when all expenses are selected by @lorretheboy in https://github.com/Expensify/App/pull/96120
* Add Sentry monitoring for OnyxDerived recompute loops by @TMisiukiewicz in https://github.com/Expensify/App/pull/98133
* Preserve Search context when deleting tasks by @marufsharifi in https://github.com/Expensify/App/pull/97192
* [NO QA] Drop browser extension errors from Sentry with denyUrls by @rlinoz in https://github.com/Expensify/App/pull/98417
* Skip PR author checklist when melvin-bot[bot] is the author by @rlinoz in https://github.com/Expensify/App/pull/98353
* [Part 2.3]  Remove Onyx.connect(ONYXKEYS.SESSION) in ReportActionsUtils: thread currentUserAccountID through isWhisperActionTargetedToOthers by @truph01 in https://github.com/Expensify/App/pull/96615
* [No QA] Add DualEntry action tests and docs by @ShridharGoel in https://github.com/Expensify/App/pull/98316
* Do not show link in members' message by @Gonals in https://github.com/Expensify/App/pull/98286
* fix: stop Search re-firing an identical query on unrelated Onyx updates by @BartekObudzinski in https://github.com/Expensify/App/pull/98305
* Refactor: migrate convertToDisplayString to useCurrencyListActions hook (part 19) by @shubham1206agra in https://github.com/Expensify/App/pull/98158
* Show Smart Limit card option disabled when approvals are optional by @MelvinBot in https://github.com/Expensify/App/pull/96567
* Migrate ActionableItemButtons to composition by @mikolajpochec in https://github.com/Expensify/App/pull/97905
* Fix Add Approval Workflow lag by @sosek108 in https://github.com/Expensify/App/pull/97766
* [Payment due @dmkt9] Show a needs re-auth message for card scrape codes 438/532 (NewDot) by @MelvinBot in https://github.com/Expensify/App/pull/97893
* [No QA][Sentry] - add startup prewarm guard by @rinej in https://github.com/Expensify/App/pull/98277
* Migrate useSingleExecution off InteractionManager by @collectioneur in https://github.com/Expensify/App/pull/95391
* [CP Staging] Patch Skia to fix iOS chart crash and charts stuck loading by @mhawryluk in https://github.com/Expensify/App/pull/98437
* Update getReportPreviewAction function to pass chatReportAction - 1 by @cretadn22 in https://github.com/Expensify/App/pull/97888
* Remove ONYXKEYS.CREDENTIALS - batch 2 by @cretadn22 in https://github.com/Expensify/App/pull/97886
* Do not use commuter exclusions for self-DMs by @Gonals in https://github.com/Expensify/App/pull/98321
* [Part 3.4] Remove Onyx.connect(ONYXKEYS.SESSION) in ReportActionsUtils: thread currentUserAccountID through wasActionTakenByCurrentUser- #96702 by @truph01 in https://github.com/Expensify/App/pull/97659
* [No QA] Remove unsafe type assertions from test files by @KJ21-ENG in https://github.com/Expensify/App/pull/97322
* [No QA] Remove unsafe type assertions from unit tests by @KJ21-ENG in https://github.com/Expensify/App/pull/97530
* Use allReportActionsList param instead of module-level getAllReportActions in updateSplitTransactions by @MelvinBot in https://github.com/Expensify/App/pull/98301
* Hoist the active policy subscription out of Search rows by @TMisiukiewicz in https://github.com/Expensify/App/pull/98299
* [No QA] Fix mixed clock domains in span duration logs by @chrispader in https://github.com/Expensify/App/pull/98152
* [CP Stg] fix chart cut off in concierge room by @situchan in https://github.com/Expensify/App/pull/98455
* Parse markdown in agent custom instructions on the profile page by @roryabraham in https://github.com/Expensify/App/pull/98380
* [No QA] Rename ExportDownloadStatusContext.tsx to ExportDownloadStatusProvider by @arosiclair in https://github.com/Expensify/App/pull/98367
* Fix: Web - RHP - Create expense RHP misalignment when quickly creating per diem expense by @annaweber830 in https://github.com/Expensify/App/pull/97754
* [Part 1.3] Remove Onyx.connect(ONYXKEYS.SESSION) in ReportActionsUtils: thread currentUserAccountID through getReimbursedMessage- #96590 by @truph01 in https://github.com/Expensify/App/pull/97652


**Full Changelog**: https://github.com/Expensify/App/compare/9.4.52-11...9.4.53-10