Skip to content

Deploy Checklist: New Expensify 2026-04-02 #86989

@OSBotify

Description

@OSBotify

Release Version: 9.3.52-3
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. Enable Odometer distance expense feature #86769
  2. feat: Add verified badge in domains list row after verifying the domain #83811
  3. [Payment due @rojiphil] Deleted transactions on search #85818
  4. Add aria-expanded to ButtonWithDropdownMenu for screen reader accessibility #86499
  5. Fix: Keyboard Navigation: Paid expense details: The content is focused in a confusing order #80122
  6. feat: Update option missing for Personal Bank Accounts in ND compared to Classic #80020
  7. [CP Staging] Revert #80020  #86808
  8. Add billing restriction check for Per Diem move-to-new-report #86616
  9. [CP Staging] Revert #80122 #86802
  10. Mobile-Expensify submodule update to 9.3.51-1Adhoc Build
  11. [No QA] docs: add Print button to help site articles #86387
  12. [CP Staging] Fix: Update the condition to correctly display user options on the reject reason screen #86843
  13. Remove getPolicy usages from tax and rules functionalities #86396
  14. Mobile-Expensify submodule update to 9.3.51-2Adhoc Build
  15. Fix/import categories correct count #81548
  16. feat: Allow admins to mark report with non-reimbursable expenses as paid and show decision modal if user try to pay via ACH #83329
  17. Block currency changes when workspace has partially setup bank account #86075
  18. [No QA] Add help site docs for Duplicate Expenses feature #86388
  19. Decompose MoneyReportHeader primary actions into a separate component #86723
  20. [Payment due @abzokhattab] Add OpenSearchCardFiltersPage command to the Feed selector #86319
  21. Part 13 - Remove Onyx.connectWithoutView for ONYXKEYS.BETAS in ReportUtils and make betas required across all callers. #86706
  22. Extract MoneyReportHeader status bar logic into hook and component #86732
  23. Migrate split thread comments to the original transaction's optimistic thread when reverting a split #86469
  24. [cp staging] remove Columns button from Report layout for now #86872
  25. Mobile-Expensify submodule update to 9.3.51-3Adhoc Build
  26. Fix main types #86878
  27. Fix 'Waiting for you to add expenses' when creating distance expense offline #85298
  28. 83830 migrate workspace general #85337
  29. [Payment due @ChavdaSachin] Fix suggested followup ordering and add HTML formatting tests #86382
  30. Sort table by date when clicking into chart data point #86640
  31. Mobile-Expensify submodule update to 08e403cAdhoc Build
    https://github.com/Expensify/Mobile-Expensify/pull/13898
  32. fix: Remove Onyx.connect() for the key: ONYXKEYS.COLLECTION.POLICY (part 2) #86615
  33. [No QA] chore: LHNOptionsList cleanup — hoist isWeb, deduplicate reportAttributes, remove duplicate guard #86647
  34. [ECUK In-App 3DS] Prevent unwanted validate code resend and display rate limit errors in MFA flow #86320
  35. Handle Escape key navigation in WorkspaceNavigator #86849
  36. fix: android pressability issue with measureAsyncOnUI patch (v5) #86708
  37. refactor: convert duplicate expense error modals to showConfirmModal #86886
  38. fix - concierge task is not auto-completed after completing Test drive via Reports tab #86717
  39. Update merchant rules styles #86743
  40. [No QA] deprecate session data & refactor getCleanUpTransactionThreadReportOnyxData #86605
  41. add policy to getForExpenseMovedFromSelfDM #86191
  42. [Odometer] Add backup transaction for purpose of editing from confirmation #86022
  43. Mobile-Expensify submodule update to 9.3.51-4Adhoc Build
  44. [No QA] docs: add Spend over time section to Home Overview #86597
  45. Revert 85818 #86804
  46. Mobile-Expensify submodule update to 9.3.51-5Adhoc Build
  47. Implement correct path handling in navigation state #86653
  48. feat: date range filter UI and year picker fix (#81501) #85313
  49. Update CTA and workspace chat copy for track-intent users #86460
  50. Move Onyx.connect() usage for ONYXKEYS.COLLECTION.POLICY_TAGS from getSendInvoiceInformation to sendInvoice in src/libs/actions/IOU/SendInvoice.ts #86322
  51. Refactor MoneyRequestOdometerImage functions #86037
  52. Missing messages edge case #86735
  53. Part 1: Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/actions/Policy/Policy.ts #86846
  54. [No QA] Fix types in main #86914
  55. Mobile-Expensify submodule update to 9.3.51-6Adhoc Build
  56. Feat: added concierge menu item #86576
  57. Revert "fix: use in-app VisionCamera for chat attachments on Android and iOS (v2)" #86902
  58. Preserve local image source on expense creation #86512
  59. feat: Person Amount and Attendees in Expense Table #85332
  60. Mobile-Expensify submodule update to 9.3.51-7Adhoc Build
  61. Workspace - App reopens workspace settings when swiping back after enabling workspace feature #86655
  62. Fix - Android - Accounting - Error message overlapped by OS navigation buttons #86249
  63. Part 2: Remove Onyx.connect() for the key: ONYXKEYS.PERSONAL_DETAILS_LIST in src/libs/actions/Policy/Policy.ts #86851
  64. [No QA] Fix "Refused to get unsafe header" console error on cross-origin requests #86488
  65. Add inactive pill to cardlist, show frozen card  #82961
  66. [No QA] fix: Remove duplicate useOnyx subscription and redundant hook call in LHN #86956
  67. refactor getReportPreviewMessage to use conciergeReportID from useOnyx #86826
  68. Decompose DecisionModal inline state into useDecisionModal hook in MoneyReportHeader #86939
  69. Remove the rest of the getPolicy usages #86401
  70. Revert "follow-up: Start & End date does not matches Title format with Trip-based Auto-reporting" #86918
  71. Extract educational modals from MoneyReportHeader into MoneyReportHeaderEducationalModals #86950
  72. Create a new generateDefaultWorkspaceName #85789
  73. decompose ReportScreen 6c: extract not-found guards #86720
  74. Mobile-Expensify submodule update to 9.3.51-8Adhoc Build
  75. Fix: Deleting one split in Top Spenders removes both splits #86090
  76. Mobile-Expensify submodule update to 9.3.51-9Adhoc Build
  77. [No QA] Extract useExportAgainModal hook from MoneyReportHeader #86961
  78. Extract ReportPDFDownloadModal from MoneyReportHeader #86946
  79. fix: update dark-contrast config #86680
  80. Remove onClick from non-interactive Pressables to fix TalkBack a11y #86731
  81. Align optimistic task chatType inheritance with backend behavior #84263
  82. fix: Android - Report - User is auto scrolled up after returning from second added receipt #84498
  83. [No QA] Upgrade JS GitHub Actions runtime from node20 to node24 #86771
  84. [Snyk] Fix for 2 vulnerabilities #86879
  85. Part 2 - Thread delegateEmail through editTaskAssignee to remove Onyx.connect. #86805
  86. Spend rule section #86572
  87. [No QA] ci: Fix HTTP 403 on gh release create by granting contents:write permission #86795
  88. fix Expense - Unable to Reject expense & incorrect “Moved expense” message #86622
  89. Add paragraph api to skia #85829
  90. Fixes for regressions for New card selector #86960
  91. [NoQA] Update claude-code-action to v1.0.83 #86976
  92. Add missing import to MoneyReportHeaderEducationalModals #86979
  93. fix: Submit button is displayed on expense from archived workspace #86506
  94. [CP Staging] Revert "fix: Mark as unread doesn’t work with IOU report" #86980
  95. Optimize post-expense search page transition with progressive rendering #86738
  96. Mobile-Expensify submodule update to 9.3.51-10Adhoc Build
  97. Upgrade react-navigation to latest #85743
  98. Fix non-usd flow api error #84904
  99. fix: start HybridApp splashScreenState as undefined until native settings arrive #86676
  100. Mobile-Expensify submodule update to 9.3.52-0Adhoc Build
  101. [CP Staging] Fix non-reimbursable pay button options in report header #87023
  102. Mobile-Expensify submodule update to 9.3.52-1d700ac2
  103. [cp stag] Revert "Remove onClick from non-interactive Pressables to fix TalkBack a11y" #87062
  104. Mobile-Expensify submodule update to 9.3.52-205d1883
  105. Fix receipt thumbnail disappearing after rotate/crop #87091
  106. Mobile-Expensify submodule update to 9.3.52-338967c4

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

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions