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