9.4.53-10

ShenhanQian/VHAP9.4.53-10Aug 14, 2026by github-actions[bot]

AI Summary

This release focuses on upgrading the React Native framework to version 0.86.0 and resolving various UI and functional bugs, such as date rendering issues after locale switches and receipt amount reverting. It also introduces new features for card statement exports and policy changelog system messages.

Key Highlights

  • Upgrade React Native to version 0.86.0
  • Fix Spend tab date rendering issues after locale switches
  • Add bank account filter for Expensify Card statement exports
  • Implement policy changelog report action system messages

New Features

  • Bank account filter for Expensify Card statement exports
  • Show 'More' option on every Rules tab
  • Add DualEntry integration import pages
  • Policy changelog system messages for report actions
  • Show Pay option in bulk actions dropdown while offline

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