Skip to content

Deploy Checklist: New Expensify 2026-04-23 #88633

@OSBotify

Description

@OSBotify

Release Version: 9.3.64-31
Compare Changes: production...staging
Mobile-Expensify Changes: https://github.com/Expensify/Mobile-Expensify/compare/production...staging

This release contains changes from the following pull requests:

Mobile-Expensify PRs:

Deploy Blockers:

Chronologically ordered merged PRs (oldest first)
  1. Fix the weird links on the Footer #306
  2. [CP Staging] fix: Downgrade Onyx to v3.0.45 #85767
  3. Updated the stored authToken every 90 minutes #323
  4. Fix the favicon by using the generic path to this component #328
  5. Hide chats when there are no unread messages #330
  6. Duplicate browser notifications for chat.expensify.com  #333
  7. Onyx bump to v3.0.61 #85919
  8. Use a larger button for multi-select on web #88146
  9. Fix unread marker flash at chat beginning after sign-in #87518
  10. fix: RBR is not close to chevron #86646
  11. Fix Report- Something when wrong when resize to fullscreen in bar or line view of expense report #87084
  12. Mobile-Expensify submodule update to ec7d84fAdhoc Build
  13. follow up: default new WS to Control if user is in annual subscription #86301
  14. Mobile-Expensify submodule update to 9.3.61-1Adhoc Build
  15. Part 1: Remove Onyx.connect() for the key: ONYXKEYS.PERSONAL_DETAILS_LIST in src/libs/actions/Report.ts #86840
  16. [Performance] Extend dismiss-first navigation fast paths + deferred writes #87768
  17. Fix SLO on web #86416
  18. Show action badge in LHN for individual expense reports #88294
  19. feat: Add inline editing for tables on desktop #83127
  20. perf: navigate before optimistic writes in Search onSelectRow #87982
  21. Mobile-Expensify submodule update to cbc9c0eAdhoc Build
    https://github.com/Expensify/Mobile-Expensify/pull/13921
  22. [NO QA] Consolidate accounting export travel invoicing translations into workspace.common #88371
  23. Update copy from 'Reports' to 'All Reports' #88421
  24. Hide Switch to Classic button when classicRedirect nudge is over a month old #88393
  25. migrate netSuite part2 v2 #87749
  26. [NO QA] Remove NetSuite travel invoicing vendor selector #88467
  27. Fix date filter reset not persisting cleared values to Onyx #87079
  28. [NoQA] Deprecate 'Send Reassure Performance Tests to Graphite' workflow #88461
  29. [Payment due @huult] [CP Staging] Revert "Fix: Filter ineligible reports in useOutstandingReports hook" #88439
  30. Fix: Time expenses are created with tax #87993
  31. [No QA] Migrate all macOS GitHub runners to blacksmith-12vcpu-macos-latest #88475
  32. [No QA] Remove unnecessary artifact download step #88481
  33. [Payment due @Ollyws] [No QA] Display recurrence count for de-duplicated sync failure messages #88008
  34. Remove test drive option from Global Create FAB menu #88208
  35. Fix crash when attendee email is undefined in getPersonalDetailByEmail #87955
  36. Mobile-Expensify submodule update to 9.3.61-2Adhoc Build
  37. [No QA] [NO QA] Docs updates for E/A#87552 Clarify payment options for non-reimbursable reports #88031
  38. [NO QA] Docs updates for E/A#87577 Update Spend over time widget visibility criteria #88030
  39. [NO QA] Docs updates for E/A#86760 Add PDF rotation to receipt help article #88027
  40. [No QA] Upgrade Ruby to 3.4.1 and fix CocoaPods on Blacksmith runners #88492
  41. Remove Onyx.connect() for the key: ONYXKEYS.STASHED_SESSION #87985
  42. fix: Wrong tax rate is used when selecting a distance rate that doesn't have a tax rate associated with it #87911
  43. [No QA] docs: Update help articles for non-reimbursable expense payment #86995
  44. Fix arrow key focus wrapping on Reports page #88330
  45. [Payment due @ahmedGaber93] Bypass suggestedFollowups beta for MANAGE_TEAM + MICRO cohort #87282
  46. Preserve IOU action param in distance rate upgrade flow #88201
  47. refactor buildOptimisticAnnounceChat to use currentUserAccountID from useOnyx #87774
  48. Build full navigation state for stacked dynamic routes on refresh #87089
  49. refactor: PureReportActionItem, CardBrokenConnectionContent #88326
  50. [No QA] Update Home Overview help article for Getting started section #87572
  51. refactor: PureReportActionItem, ReportActionItemEmojiReactions #88324
  52. Remove unnecessary custom types from translations - Batch 13 #84271
  53. [NoQA] Add agent-device glue-code skill for mobile testing #87662
  54. [No QA][Sentry] Enable experimental profiling option #87560
  55. fix: Mark as unread doesn’t work with IOU report #87041
  56. [Payment due @daledah] [No QA] Fix React Compiler compliance in WorkspaceCompanyCardDetailsPage #88485
  57. Remove Onyx.connect() usage for ONYXKEYS.COLLECTION.POLICY_TAGS from changeTransactionsReport() in src/libs/actions/Transaction.ts #86517
  58. feat: add bulk duplicate report action to Reports search page #87728
  59. help site icon update #88325
  60. Hide empty custom field columns in workspace members list #88205
  61. Fix "Not here" page opening in background for Business BA payments in offline mode #87690
  62. Revert "fix: show inline member row error when workspace role update fails" #88531
  63. Limit re-renders after a merchant change while on the Search page #88417
  64. Fix stale expense report totals after offline mixed-currency moves #87238
  65. Revert "Revert "fix: show inline member row error when workspace role update fails"" #88533
  66. [NO QA] Fix types on main #88537
  67. Update README with Expensify engineer instructions #88163
  68. perf: Decompose MoneyRequestParticipantsSelector into render boundaries #88430
  69. [Odometer] Improvement to DiscardChangesConfirmation usage #87269
  70. [NoQA] Remove unused exports (batch 4) #88283
  71. [NoQA] Remove unused exports (batch 5) #88284
  72. Fix trip missing gap between two rows on a trip card #88203
  73. extract useResetIOUType hook to deduplicate tab logic #87959
  74. [NoQA] Remove unused exports (batch 6) #88285
  75. fix: prevent Concierge redirect and LHN disappearance when vacation delegate splits expense #86869
  76. Hide three-dot menu for locked bank accounts in Wallet #88254
  77. refactor updateSplitTransactionsFromSplitExpensesFlow to use isOffline from hook #88401
  78. [No QA] Report SendMoney new account creation to fraud protection backend #88064
  79. Refactor draft restoration logic #87881
  80. Mobile-Expensify submodule update to 9.3.61-3Adhoc Build
  81. Fix subscription settings UI branch for legacy Collect #88115
  82. 87517: LHN - LHN displays more items than original account after Onyx import #88149
  83. Show rules in RHP #87682
  84. [No QA] Add SmartScan troubleshooting articles and refractor close account articles #88161
  85. [No QA] Fix standalone NewDot debug builds to use debug compilation flags #88517
  86. [No QA] Auto-fix ESLint warnings, adjust max warning count #88553
  87. Fix distance receipt remaining zoomed in #88209
  88. [Domain Control] [Release 4] Create DomainSecurityGroupDetailsPage RHP with domain name #82934
  89. [No QA] perf: avoid mapping all personal details in ReportWelcomeText #88511
  90. Fix browser tab title on Spend page to show Spend instead of Search #88565
  91. Fix search content is cut off when there are filter bars #88573
  92. fix: exclude modifiedAmount NOTICE from LHN RBR for submitted reports #88230
  93. Mobile-Expensify submodule update to 9.3.61-4Adhoc Build
  94. Fix ReferralProgramCTA text tap not responsive #88274
  95. Decompose scan pr1 selectors getters #87083
  96. Fix: "Pay with personal account" does nothing in QAB expense flow #88390
  97. Block reports export for deleted expenses #88518
  98. [No QA] Change file extension #88548
  99. Add displays section in save search page #88448
  100. Show migrated user welcome modal immediately and navigate to Home on dismiss #86733
  101. fix: App blinks when Attachment error modal shows up #87848
  102. fix: Expense - Map expense is shown instead scan expense #88585
  103. [Odometer] Blob URL loss detection #86023
  104. fix: prevent overlay dismiss during in-flight RHP transitions #88367
  105. [NoQA] Remove unused exports (batch 1) #88280
  106. [NoQA] Run Claude PR reviewer when a Contributor+ approves a PR #88584
  107. Migrate SearchFiltersChatsSelector.tsx from useOptionsList to useFilteredOptions #88186
  108. [NoQA] Add the HR page Gusto card #88466
  109. [Landscape] Fix popup content is not fully shown #88191
  110. refactor getReasonAndReportActionThatHasRedBrickRoad to use isOffline from useNetwork #88343
  111. Mobile-Expensify submodule update to 9.3.62-0Adhoc Build
  112. [No QA] Update navigation terminology from "Reports" to "Spend"  #88010
  113. [No QA] Update country list for ECUK #88626
  114. Mobile-Expensify submodule update to c756878Adhoc Build
    https://github.com/Expensify/Mobile-Expensify/pull/13888
  115. [CP Stag] Put spend rule summary and editing behind env guard #88663
  116. Mobile-Expensify submodule update to 9.3.62-1Adhoc Build
  117. fix: bulk edit, tax field missing for unreported expenses #88382
  118. [No QA] Update help docs with proportionate guidance for unrequested magic codes #88662
  119. Remove optimistic Concierge typing updates for delayed follow-up responses #88630
  120. Bump @sentry/webpack-plugin and googleapis with lockfile update #88590
  121. perf: defer mount of MoneyReportHeaderSecondaryActions #88522
  122. [Performance] Drop dead NETWORK dependency from visibleReportActions derivation #88592
  123. [No QA] Delete Expensify-Travel-Walkthrough.md #87315
  124. Introduce a Bottom Tab Navigator for Top-Level Navigation #85234
  125. chore: Bump Onyx to version 3.0.63 to fix memory leaks and other issues in NitroSQLite and Nitro #84517
  126. feat: Make Cancel Subscription Option More Visible and Accessible #84510
  127. Revert "Show migrated user welcome modal immediately and navigate to Home on dismiss" #88687
  128. Avoid mounting MoneyRequestReportNavigation when unnecessary #88714
  129. [CP Staging]Fix: Track expense ignores tax #88694
  130. [Payment due @huult] [Internal QA] Trigger SAML sign-in when trying to re-auth a SAML required account #87368
  131. Remove usages of deprecated session data from IOU/index file and refactor createDistanceRequest #88290
  132. [ECUK In-App 3DS] refactor MFA REASON #87975
  133. Gate SelectionToolbar mount on active selection #88721
  134. [No QA] Remove unused cpu-cores action #88684
  135. Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/SubscriptionUtils Part 3 #87660
  136. Mobile-Expensify submodule update to 9.3.62-2Adhoc Build
  137. extract useParticipantSubmission hook #87979
  138. Revert "feat: Add inline editing for tables on desktop" #88751
  139. Mobile-Expensify submodule update to 9.3.62-3Adhoc Build
  140. Refactor mergeDuplicates to pass currentUserData #88292
  141. Fix jumps when new message appears while user scrolled up #88536
  142. [No QA] Docs updates for E/A#88181 Update search groupings and suggested search names #88415
  143. migrate CHANGE_POLICY_EDUCATIONAL #87741
  144. [No QA] [NO QA] Docs updates for E/A#88133 Update saved search rename instructions #88223
  145. [No QA] refactor: move split/distance creation functions to IOU/Split.ts #87957
  146. [No QA] docs: Document update flow for personal bank accounts with missing info #86993
  147. Fix: unify optimistic managerID with API param in submitReport #84628
  148. Add IOCP press release to Home tab Announcements #88628
  149. [CP Staging] fix Deeplink - App is stuck on splash screen when navigating to a public room as anon user #88733
  150. refactor buildOptimisticWorkspaceChats to use currentUserAccountID and currentUserEmail from useOnyx #88543
  151. ReportActionCompose 5/6: extract attachment hooks #88391
  152. Mobile-Expensify submodule update to 993e7f0Adhoc Build
    https://github.com/Expensify/Mobile-Expensify/pull/13882
  153. Mobile-Expensify submodule update to 9.3.62-4Adhoc Build
  154. Part 3: Remove Onyx.connect() for ONYXKEYS.COLLECTION.REPORT_ACTIONS  #88312
  155. fix: Tab bar remains visible when opening search from Reports page (mobile) #88726
  156. refactor: PureReportActionItem, ChatTransactionPreview #88579
  157. [NoQA] refactor: PureReportActionItem, TripRoomPreview #88568
  158. feat: user pill workflow attendees #87705
  159. perf: skip WideRHPReceiptPanel hooks on non-SEARCH_REPORT routes #88905
  160. refactor: PureReportActionItem, TaskPreview #88440
  161. Fix stale duplicate violation persisting after editing transaction amount offline #88298
  162. #2 - Replace the old generateDefaultWorkspaceName with the new one #88564
  163. Mobile-Expensify submodule update to 9.3.62-5Adhoc Build
  164. Fix duplicate indicator on paid reports and error when bulk-duplicating non-reimbursable expenses #88442
  165. [No QA] Update help site docs for bulk change approver feature #88841
  166. Add new font files to the app to support more currencies #87987
  167. Spend rule card empty state #88256
  168. Mobile-Expensify submodule update to 8db5ec6Adhoc Build
    https://github.com/Expensify/Mobile-Expensify/pull/13919
  169. fix: Remove Onyx.connect() for the key: ONYXKEYS.COLLECTION.POLICY (part 5) #88690
  170. Part 7 - Thread delegateEmail through addComment/addAttachment/pressLockedBankAccount callers #87968
  171. [CP Stag] Fix date filter is cut off #88704
  172. Drop "All" from "All reports", "All expenses" in Spend tabs #88900
  173. [Payment due @mkhutornyi] Fix empty Account Manager banner #88611
  174. Use correct cardName translation key for personal card rename flow #88736
  175. Update table and row styles for mobile search pages #87742
  176. [CP Staging] remove deferred mount #88941
  177. [No QA] Remove UberForBusiness beta #88922
  178. Navigate to Home instead of Inbox in goBackToHome #88563
  179. Mobile-Expensify submodule update to 9.3.62-6Adhoc Build
  180. [NoQA] Enable linting for accessibility #84381
  181. perf: Cache and defer heavy saved search computation #88316
  182. [No QA] Update Using-search-operators.md  #88249
  183. [No-QA] perf: video player render loop #88314
  184. [CP Staging] fix: SpendOverTime widget not updating data when switching tabs #88966
  185. Mobile-Expensify submodule update to 9.3.62-7Adhoc Build
  186. [INTERNAl QA] Compact row styles for context menus and popovers #87155
  187. Revert "perf: navigate before optimistic writes in Search onSelectRow" #88980
  188. updated expense-moving logic to use the default workspace, except when an admin moves a member's report #87962
  189. Do not show workspace deleted offline in the feed selector #88188
  190. [Odometer] App stuck on E screen after refresh on confirm odometer page #88702
  191. Mobile-Expensify submodule update to 9.3.62-8Adhoc Build
  192. Use accounting integration bank accounts for reconciliation #87916
  193. [Onyx Audit] Migrate keys to RAM-only part 3/3 #86660
  194. Mobile-Expensify submodule update to 9.3.62-9Adhoc Build
  195. Mobile-Expensify submodule update to 9.3.62-10Adhoc Build
  196. fix move to report deletes expense #88952
  197. Mobile-Expensify submodule update to 9.3.62-11Adhoc Build
  198. Add split child transactions to search snapshot optimistically #88982
  199. Fix : Reports - Create report button does not show upgrade page when account has no workspace #78995
  200. Mobile-Expensify submodule update to 9.3.62-12Adhoc Build
  201. [No QA] Fix typecheck #88999
  202. [No QA] Empty PR to trigger deploy #89001
  203. [CP Staging & Prod] Add Settings_Profile to exit survey entryScreens #88990
  204. [No QA] Update help site deployment actions to build site manually #88917
  205. [No QA] Adopt eslint-seatbelt #88566
  206. Add rendering for MARK_REIMBURSED_FROM_INTEGRATION report action #85003
  207. [No QA] Update eslint.seatbelt.tsv after merge #89007
  208. Mobile-Expensify submodule update to 9.3.62-13Adhoc Build
  209. [CP Staging] fix: Report field shows None instead of report #88950
  210. Mobile-Expensify submodule update to 9.3.63-198c0b09
  211. Mobile-Expensify submodule update to 9.3.64-02777b69
  212. Fix issues #89004 and #88948 #89054
  213. Mobile-Expensify submodule update to 9.3.64-18847e63
  214. fix: The Wallet Settings page is displayed instead of the settings menu page after opening "Add address" modal on the Home page on mobile web #88949
  215. Mobile-Expensify submodule update to 9.3.64-2b6ff8a9
  216. Mobile-Expensify submodule update to 9.3.64-32e95ff3
  217. Fix issue: Spend - New report does not appear in the background after moving expense to new report #89088
  218. #88960 show offline tracked expense in search #89081
  219. Mobile-Expensify submodule update to 9.3.64-4e029680
  220. Mobile-Expensify submodule update to 9.3.64-5993e0cf
  221. Fix issue #88958: QAB - App doesn't navigate to the Reports/Spend tab after create expense from QAB #89077
  222. fix: #88963 - fallback to split navigator's default route when there's no existingFirstRoute #89080
  223. Mobile-Expensify submodule update to 9.3.64-6b60021d
  224. Fix send money crash #89105
  225. Mobile-Expensify submodule update to 9.3.64-7ffd9c57
  226. Fix deploy blockers from filters after introducing Bottom Tab Navigator #89082
  227. Mobile-Expensify submodule update to 9.3.64-82fbc1d5
  228. [cp staging] fix(iOS): keep ScrollAnchor mounted to prevent scroll reset when MVCP toggles #88923
  229. Mobile-Expensify submodule update to 9.3.64-992f4876
  230. Fix: user is incorrectly navigated to the WS chat when created expense in Spend via Quick Action #88979
  231. Mobile-Expensify submodule update to 9.3.64-10c5212b3
  232. [CP Staging] Fix search list regressions: skeleton stretching, stale expense count, and lost border radius #89043
  233. Mobile-Expensify submodule update to 9.3.64-11126d428
  234. [CP Staging] Fix issue #89072: Restore leftPaneWidth to fix the way skeleton calculates its position #89119
  235. Mobile-Expensify submodule update to 9.3.64-1296297c8
  236. Mobile-Expensify submodule update to 9.3.64-1337356ed
  237. [CP staging] fix: prevent DatePicker autofocus from reopening calendar #89057
  238. 88976 - Fix navigation from Add bank page to settings #89109
  239. Mobile-Expensify submodule update to 9.3.64-14dc8a16c
  240. Mobile-Expensify submodule update to 9.3.64-152c9445c
  241. fix back button on workspace initial page #89182
  242. Fix issue #88965: RHP anchoring on wrong tab for dynamic routes when RHP exists below current TAB_NAVIGATOR #89096
  243. Mobile-Expensify submodule update to 9.3.64-169ad8326
  244. [CP Staging] Re-fire search on Spend tab focus after cache clear #88994
  245. Mobile-Expensify submodule update to 9.3.64-1702490d7
  246. Follow up fixes for compact menu rows: fix bank account rows, Copilot rows, and QAB row #89156
  247. Mobile-Expensify submodule update to 9.3.64-18d3c92e1
  248. Fix issue: Expensify Card - After clicking View transactions, Workspaces tab resets to initial page #89106
  249. Mobile-Expensify submodule update to 9.3.64-19a32ce35
  250. fix onboarding modal from OD and bac button flow #89071
  251. Mobile-Expensify submodule update to 9.3.64-20fd7bed3
  252. [cp staging] Fix report becoming invisible after deleting another report on mobile #89198
  253. Mobile-Expensify submodule update to 9.3.64-21d75b30b
  254. fix go back home #89214
  255. Mobile-Expensify submodule update to 9.3.64-2299224e5
  256. Mobile-Expensify submodule update to 9.3.64-232e3886c
  257. 🍒 Cherry pick PR #89212 to staging 🍒 #89238
  258. [CP Staging] fix(iOS): prevent native MVCP from activating when disabled flag is set in FlashList patch 007 #89253
  259. Mobile-Expensify submodule update to 9.3.64-245b4af9c
  260. Fix issue #88942: Fix navigation after pressing Change Approver button #89192
  261. Mobile-Expensify submodule update to 9.3.64-25c548907
  262. fix navigating back to prev tab #89222
  263. Mobile-Expensify submodule update to 9.3.64-26a8e234f
  264. [CP Staging] fix: always show FAB on the root-level #89269
  265. Mobile-Expensify submodule update to 9.3.64-2758ed833
  266. Fix Spend > Needs Approval carousel disappearing after approving a report #89294
  267. Mobile-Expensify submodule update to 9.3.64-280fd513c
  268. fix: iOS swipe gesture #89286
  269. Mobile-Expensify submodule update to 9.3.64-29acc2cc0
  270. Skip prepending TabNavigator for public screens in navigation state #89295
  271. Mobile-Expensify submodule update to 9.3.64-305d4fc1a
  272. Mobile-Expensify submodule update to 9.3.64-31061a91b
  273. Fix onboarding not showing after OD to ND transition #89303

Deployer verifications:

  • I checked Sentry for this release version and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found here.
  • I checked Sentry for the previous release version and verified that the release did not introduce any new crashes. Because mobile deploys use a phased rollout, completing this checklist will deploy the previous release version to 100% of users. More detailed instructions on this verification can be found here.
  • I checked GitHub Status and verified there is no reported incident with Actions.
    cc @Expensify/applauseleads

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions