9.4.20-1

nextauthjs/next-auth9.4.20-1Jun 26, 2026by github-actions[bot]

AI Summary

This release focuses on UI improvements, bug fixes, and refactoring for the Expensify app. It introduces a new CSV export status modal, fixes various interaction issues like input focus and video playback, and continues removing Onyx.connect usages to improve performance. Several changes were reverted to address regressions.

Key Highlights

  • Integrates ExportDownloadStatusModal into the report-level CSV export flow
  • Improves search performance and refactors search input to keyword-only
  • Fixes UI issues including input focus, description visibility, and video playback
  • Continues removing Onyx.connect usages for RAM_ONLY_ARE_TRANSLATIONS_LOADING and CurrencyUtils
  • Reverts several changes to fix regressions in money request and currency selector features

New Features

  • Integrate ExportDownloadStatusModal into report-level CSV export flow
  • Surface RuleBot in the Agent rules section
  • Add custom compass to GPSMapView
  • Honor the selected bank account when paying an expense report from the report preview
  • Update Home announcements widget with June 2026 product update

Full Release Notes

## What's Changed
* Hide Print secondary action for reports in the Open state by @wildan-m in https://github.com/Expensify/App/pull/92885
* Update the workspace members table to the new style by @JS00001 in https://github.com/Expensify/App/pull/91746
* Remap shortcuts for opening policy and report by @iwiznia in https://github.com/Expensify/App/pull/94155
* Fix: keep input focus by dismissing keyboard only when IOU type actually changes by @MelvinBot in https://github.com/Expensify/App/pull/94412
* [No QA] Create Find-Rooms-in-a-Workspace.md by @stephanieelliott in https://github.com/Expensify/App/pull/93992
* Guard DeepLinkHandler against stale post-sign-out initial URL by @MobileMage in https://github.com/Expensify/App/pull/92839
* Rename onboarding task copy from "Submit an expense" to "Create an expense" by @MelvinBot in https://github.com/Expensify/App/pull/93961
* feat: Integrate ExportDownloadStatusModal into report-level CSV export flow by @truph01 in https://github.com/Expensify/App/pull/93796
* Show complete Certinia bundle instructions by @ShridharGoel in https://github.com/Expensify/App/pull/94414
* [No QA] Fix flaky NewChatPage test by @MonilBhavsar in https://github.com/Expensify/App/pull/94475
* [Payment due @daledah] [No QA] Explicitly opt out from backups on iOS by @mateuuszzzzz in https://github.com/Expensify/App/pull/93586
* [Part 1] Onyx.connect removal for CurrencyUtils by @ShridharGoel in https://github.com/Expensify/App/pull/83804
* Remove Tags page header max width by @luacmartins in https://github.com/Expensify/App/pull/94516
* perf: Search S5 ExpenseFlatSearchView + primitives by @BartekObudzinski in https://github.com/Expensify/App/pull/94426
* fix: show contact names instead of phone numbers in imported contact lists by @aswin-s in https://github.com/Expensify/App/pull/91395
* [CP Staging] Fix independent tags not sorting by name by @luacmartins in https://github.com/Expensify/App/pull/94509
* [CP Staging] Revert #93402 - 83858 migrate money request part 3 v2 by @mjasikowski in https://github.com/Expensify/App/pull/94555
* Keep focus on distance field on error by @Gonals in https://github.com/Expensify/App/pull/94566
* [CP Staging] Revert "Add currency selector to Search footer total spend" by @mountiny in https://github.com/Expensify/App/pull/94562
* [Payment due @marufsharifi] Honor the selected bank account when paying an expense report from the report preview by @KioCoan in https://github.com/Expensify/App/pull/93110
* Show work-email warning before legal-name step for personal-email travel users by @MelvinBot in https://github.com/Expensify/App/pull/94529
* Fix: Video - Video is not playing in full screen, no controls, app is unresponsive by @annaweber830 in https://github.com/Expensify/App/pull/82324
* Remove Onyx.connect() for the RAM_ONLY_ARE_TRANSLATIONS_LOADING key part 1 by @daledah in https://github.com/Expensify/App/pull/91996
* Fix money request not found RHP fallback by @KJ21-ENG in https://github.com/Expensify/App/pull/93875
* fix: KYC flow doesn't trigger after adding bank account when paying another user by @samranahm in https://github.com/Expensify/App/pull/92154
* [No QA] Cancel ManualOpenSearchRouter telemetry span when the search router is closed by @jakubkalinski0 in https://github.com/Expensify/App/pull/94472
* Soft-log missing ViewState in addViewAt to fix Fabric mount crash by @lorretheboy in https://github.com/Expensify/App/pull/94095
* Replace getDisplayNameOrDefault with temporaryGetDisplayNameOrDefault  by @cretadn22 in https://github.com/Expensify/App/pull/94302
* Prevent loading older chats while hidden history is shown by @VickyStash in https://github.com/Expensify/App/pull/94444
* Collapse in-flight reconnects by coverage to close the SequentialQueue dedup gap by @adhorodyski in https://github.com/Expensify/App/pull/94210
* Remove getLoginByAccountID usages from getSubmitReportManagerAccountID and prepareRejectMoneyRequestData by @bernhardoj in https://github.com/Expensify/App/pull/92629
* [No QA] Add web crash diagnostics to detect abnormal browser session exits by @sosek108 in https://github.com/Expensify/App/pull/94201
* [NO QA] Reduce unsafe type assertions in tests via createMock helper by @blimpich in https://github.com/Expensify/App/pull/92979
* Rework search input to be a keyword search only by @bernhardoj in https://github.com/Expensify/App/pull/93543
* Fix regressions from  [Rules Revamp] Release 1 by @Krishna2323 in https://github.com/Expensify/App/pull/94478
* [Payment due @bernhardoj] Update Home announcements widget with June 2026 product update by @MelvinBot in https://github.com/Expensify/App/pull/94502
* Part 3: Refactor ConfirmModal usage to useConfirmModal in workspace accounting and general pages  by @thelullabyy in https://github.com/Expensify/App/pull/93633
* [CP Staging] Fix tag selection mode on RHP by @luacmartins in https://github.com/Expensify/App/pull/94600
* [GPS] Add custom compass to GPSMapView by @GCyganek in https://github.com/Expensify/App/pull/94284
* [CBN] Refactor EnablePayments flow by @VickyStash in https://github.com/Expensify/App/pull/92779
* Show date change in system message when a distance date edit also changes the rate by @c3024 in https://github.com/Expensify/App/pull/94556
* Move from a boolean flag to a timestamp for ResendValidateCode gate by @chuckdries in https://github.com/Expensify/App/pull/93301
* [Payment due @brunovjk] Surface RuleBot in the Agent rules section by @yuwenmemon in https://github.com/Expensify/App/pull/94131
* Android & iOS - Expense - Description field is not visible when focused by @thelullabyy in https://github.com/Expensify/App/pull/94398
* Fix Spend tab flash when backing out of manual expense from Workspaces tab by @MelvinBot in https://github.com/Expensify/App/pull/94515
* Fix duplicate "This field is required" error on manual expense confirmation by @MelvinBot in https://github.com/Expensify/App/pull/94513
* Migrate InteractionManager - batch 3 part 3 by @mrejdak in https://github.com/Expensify/App/pull/94040
* fix: report unread by @annaweber830 in https://github.com/Expensify/App/pull/91940
* Block submitter self-approval Approve badge on Submit workspaces by @MelvinBot in https://github.com/Expensify/App/pull/94553
* [No QA] Move sentry size analysis upload to deploy step by @rinej in https://github.com/Expensify/App/pull/94039


**Full Changelog**: https://github.com/Expensify/App/compare/9.4.19-5...9.4.20-1