Skip to content

Deploy Checklist: New Expensify 2026-04-30 #89315

@OSBotify

Description

@OSBotify

Release Version: 9.3.65-6
Compare Changes: production...staging

This release contains changes from the following pull requests:

Internal QA:

Deploy Blockers:

Chronologically ordered merged PRs (oldest first)
  1. Mobile-Expensify submodule update to 9.3.63-0Adhoc Build
  2. fix: bulk edit, disable tags edit for non WS expenses #88422
  3. Mobile-Expensify submodule update to 9.3.63-1Adhoc Build
  4. Mobile-Expensify submodule update to 9.3.64-0Adhoc Build
  5. [No QA] Update HOW_TO_BECOME_A_CONTRIBUTOR_PLUS.md #88627
  6. [No QA] Add link to SO to "Investigate workflow job failing" issue #88918
  7. Hide Private Notes behind beta flag #88204
  8. [Payment due @Krishna2323] Fix submit report approver selection from stale policy data #88708
  9. [NoQA] Add domainAccountID to OpenPolicyExpensifyCardsPage params #89003
  10. Fix case-sensitive CSV import disabling categories and tags #87748
  11. perf: split reportMetadata into key groups #88613
  12. [no qa] perf: decompose OptionRowLHN tooltip layer into a separate component #89085
  13. Fix: 87757 plaid oauth broader fix #88534
  14. Mobile-Expensify submodule update to 9.3.64-1Adhoc Build
  15. [Payment due @abzokhattab] Add workspace rules PDF document upload, view, and management UI #87684
  16. [No QA] remove dead code from ReportActionsView #89102
  17. [no qa] perf: decompose OptionRowLHN press/context-menu into a separate component #89086
  18. Mobile-Expensify submodule update to 9.3.64-2Adhoc Build
  19. Mobile-Expensify submodule update to 9.3.64-3Adhoc Build
  20. Mobile-Expensify submodule update to 9.3.64-4Adhoc Build
  21. Mobile-Expensify submodule update to 9.3.64-5Adhoc Build
  22. Fix SAML cancel leaving sign-in page without email field #88760
  23. feat: Add Edit Company Card feed feature for CSV Card Import #86806
  24. Mobile-Expensify submodule update to 9.3.64-6Adhoc Build
  25. Mobile-Expensify submodule update to 9.3.64-7Adhoc Build
  26. Mobile-Expensify submodule update to 9.3.64-8Adhoc Build
  27. Part 5: Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/actions/Policy/Policy.ts #88307
  28. Mobile-Expensify submodule update to 9.3.64-9Adhoc Build
  29. Current User Not Displayed at Top of “From” Filter in Reports #86967
  30. Mobile-Expensify submodule update to 9.3.64-10Adhoc Build
  31. perf: Defer mount of "More" button in Report #89060
  32. Update put on Hold function to use current user data from params #88775
  33. lazy load context menu  #88331
  34. Mobile-Expensify submodule update to 9.3.64-11Adhoc Build
  35. Reset odometer readings and image references  #89074
  36. [Payment due @situchan] Make Travel Invoicing have its own feed filter #88350
  37. Fix: Maximum character limit error message cuts off if composer expanded #89041
  38. Mobile-Expensify submodule update to 9.3.64-12Adhoc Build
  39. [No QA] Enable no-cache linting #89063
  40. Refactor DomainMemberVacationDelegatePage & rejectMoneyRequest function #88777
  41. Exclude broken reusable connections for NetSuite/Sage Intacct #88445
  42. [No QA] Add agent-device skill and flow metadata framework #88474
  43. Mobile-Expensify submodule update to 9.3.64-13Adhoc Build
  44. [No QA] Fix GitHub action builds with TypeScript 6 #89061
  45. [NoQA] Implement Gusto connection flow #88479
  46. [No QA] Default lint output to errors only via --quiet #89141
  47. fix: bulk edit, merchant should be disabled for unreported per diem #88386
  48. fix: bulk edit, recompute taxAmount on amount-only bulk edit offline  #88528
  49. Fix HTML tags showing in Split details page description #88767
  50. Add customAgent beta constant #89132
  51. [Payment due @ChavdaSachin] Remove SCAN_TEST_TOOLTIP from Create Expense Scan flow #88995
  52. 83834 migrate workspace tags settings #86934
  53. [NO QA] Restrict InteractionManager and TransitionTracker usage with 'no-restricted-imports' eslint rule #88525
  54. Update Help page copy: title and description #88755
  55. fix: Unable to reject expense with reason <Shahrukh,khan> #88983
  56. [No QA] add ManualOpenReport span to report navigation #89174
  57. Add optimistic participant update for actionable mention whisper invite #88795
  58. [Release 4] Add Default group for new members toggle #88697
  59. Clear stale converted amounts when moving cross-currency expenses from Self DM #89124
  60. Part 5: Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/SubscriptionUtils #87995
  61. fix: Fix back navigation trap after deleting expense from DM #89094
  62. Only fall back to default tax in getTaxName when tax tracking is enabled #88580
  63. fix: Prevent self approval still display in expense detail after set approver for workspace #84700
  64. Fix modal dismiss on report route change in SearchMoneyRequestReportPage #89150
  65. [No QA] perf: fix PERF-11 in useUpcomingTravelReservations #88940
  66. refactor: PureReportActionItem, ReimbursementQueuedContent #88591
  67. Mobile-Expensify submodule update to 9.3.64-14Adhoc Build
  68. Mobile-Expensify submodule update to 9.3.64-15Adhoc Build
  69. Mobile-Expensify submodule update to 9.3.64-16Adhoc Build
  70. [No QA] Extract SplitExpenseItems.ts from Split.ts  #89032
  71. Mobile-Expensify submodule update to 9.3.64-17Adhoc Build
  72. Mobile-Expensify submodule update to 9.3.64-18Adhoc Build
  73. [NoQA] Remove unused exports (batch 7) #88688
  74. Skip onboarding tasks in new workspace for already-onboarded users #89000
  75. Feat: Change Add unreported expense to Add existing expense in a report #85225
  76. [No QA] Docs: Remove tax from time expense creation steps #87797
  77. Mobile-Expensify submodule update to 9.3.64-19Adhoc Build
  78. Mobile-Expensify submodule update to 9.3.64-20Adhoc Build
  79. [Payment due @thesahindia] Show a read-only banner in ReportFooter instead of an empty footer #88550
  80. [No QA] Add eslint-report seatbelt dashboard script #89144
  81. [No QA] docs: clarify when to use eslint-disable vs SEATBELT_INCREASE in LINTING.md #89204
  82. [No QA] docs: document npm run eslint-report in LINTING.md #89207
  83. Mobile-Expensify submodule update to 9.3.64-21Adhoc Build
  84. Resolve @ts-expect-error comments related to OnyxUpdate changes - second batch #82786
  85. Filter hidden rooms from search router after leaving #87796
  86. Remove currentUser global data from iou/bulkEdit #88772
  87. Update bulkDuplicateExpense function to currentUser data #88291
  88. Mobile-Expensify submodule update to 9.3.64-22Adhoc Build
  89. [No QA] Copy platform-agnostic integrations to Connections hub #88762
  90. Bump babel-plugin-react-compiler to experimental build (TemplateLiteral key fix) #88692
  91. Bump Onyx to 3.0.66 #86885
  92. [Payment due @eVoloshchak] Share transaction thread on create with submitter #88985
  93. Decompose scan pr2 camera multiscan #87883
  94. Warn about losing access to travel and travel data on domain delete #88807
  95. migrate wait callback to reanimated #89212
  96. Mobile-Expensify submodule update to 9.3.64-23Adhoc Build
  97. Decompose MoneyRequestConfirmationList into view-model hooks #88720
  98. [No QA] Fix flaky GettingStartedSection tests by flushing batched updates after render #89241
  99. [No QA] Anchor /reports/ gitignore to repo root #89244
  100. [Payment due @situchan] [No QA] Remove manual memoization from 6 RC-failing files #88370
  101. Add Ketch cookie consent #89125
  102. [No QA] Fix event name in lint.yml #89246
  103. [No QA] Remove unnecessary eslint-disable comments #89053
  104. [No QA] perf: remove reportsSelector to avoid heavy deepEquals #89051
  105. [No QA] feat(eslint): stratify no-deprecated lint warnings by API #89249
  106. Show role-aware SmartScan failure message to non-submitters #86896
  107. Don't show columns when the value is default #89157
  108. Mobile-Expensify submodule update to 9.3.64-24Adhoc Build
  109. fixed custom report deploy blockers #86824
  110. Mobile-Expensify submodule update to 9.3.64-25Adhoc Build
  111. refactor: PureReportActionItem, extract WhisperBanner and SearchActionHeader #89169
  112. [Payment due @suneox] Prevent unnecessary openPolicyExpensifyCardsPage reload after spend rule changes #88365
  113. [Payment due @hungvu193] CompleteGuidedSetup: send selectedInterestedFeatures to shape welcome followups #88677
  114. [No QA] Replace "montos" in Spanish translation file #89273
  115. [No QA] Claude should not always run the review-code-pr command #89230
  116. Refactor Track Expense functions #88779
  117. Mobile-Expensify submodule update to 9.3.64-26Adhoc Build
  118. Mobile-Expensify submodule update to 9.3.64-27Adhoc Build
  119. feat: Add Concierge help button on mobile native app #87395
  120. [NoQA] Remove Gusto flow callback memo #89272
  121. [Payment due @mkhutornyi] [No QA] Add branch name in the browser title #87471
  122. fix task complete sound is heard when disabling category #87805
  123. fix: differentiate icons for custom and standard export formats #88157
  124. Mobile-Expensify submodule update to 9.3.64-28Adhoc Build
  125. Mobile-Expensify submodule update to 9.3.64-29Adhoc Build
  126. Mobile-Expensify submodule update to 9.3.64-30Adhoc Build
  127. Mobile-Expensify submodule update to 9.3.64-31Adhoc Build
  128. Refactor getBadgeFromIOUReport and getIOUReportActionWithBadge to pass current user data #88780
  129. Refactor unholdRequest to pass currentUserdata #88776
  130. Add magic code verification when setting default contact method #88345
  131. Auto-navigate to magic code on Travel CVV RHP mount #89251
  132. [NO QA] NetSuite Travel Invoicing — move setting up and mirror company card sub-page format #89297
  133. Refactor perDiem lib & PayMoneyRequest to remove currentuser global functions #88787
  134. Fix loading indicator #89300
  135. Mobile-Expensify submodule update to 9.3.64-32Adhoc Build
  136. Mobile-Expensify submodule update to 9.3.65-0Adhoc Build
  137. [CP Staging] Revert "[Payment due @abzokhattab] Add workspace rules PDF document upload, view, and management UI" #89362
  138. Mobile-Expensify submodule update to 9.3.65-10fd59dd
  139. Mobile-Expensify submodule update to 9.3.65-20a85fdf
  140. [CP Staging] Revert PR #88708 #89377
  141. fix: correct add existing expense eligibility rules #89357
  142. Mobile-Expensify submodule update to 9.3.65-3f7c8b41
  143. [CP Staging] Fix SAML cancel showing false email validation error on Android #89397
  144. Mobile-Expensify submodule update to 9.3.65-4 — 8ac9070
  145. [CP stag] fix: Workspace freeze after navigating from More Features warning modals #89399
  146. Mobile-Expensify submodule update to 9.3.65-51536646
  147. [CP Staging] Skip hidden filter for self DM, admins, and archived chats in search #89356
  148. Mobile-Expensify submodule update to 9.3.65-68f6b639

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