Repository navigation
Closed
Labels
StagingDeployCash🔐 LockCashDeploys 🔐Prevent new code from being deployed to stagingPrevent new code from being deployed to staging
Description
Release Version: 9.3.59-4
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:
- Remove REIMBURSED from the deprecatedOldReportActions list #80706
- [No QA] [HelpDot] Add details on how to freeze or unfreeze an Expensify Card for cardholders #80723
- [No QA] [HelpDot] Add information for admins on freezing/unfreezing an Expensify Card for admins #80724
- fix: Report - Formula report field initial value {report:i} is not persisted & resets to {report:id} #84207
- Fix chat from new user not becoming un-bold when read offline #84598
- fix: Profile - Legal Name fields accept " , "and " ; " without showing error message #84650
- Fix issue where owner becomes both first and second approver after removing second approver #84728
- Migrate SearchAutocompleteList to useFilteredOptions #85922
- Copy odometer data during transaction merge #86557
- [No QA] Update business bank account help articles #86599
- refactor: Remove shouldHandleNavigation from sendMoney and submitPerDiemExpense #86619
- [No QA] Docs: Add view: operator to search operators help article #86778
- fix: iOS - Copilot - App returns to login page after removing copilot #86844
- perf: wrap FAB popover content in Activity to deprioritize hidden updates #86866
- fix: missing pending indicator for bulk-edited expenses #86954
- fix tax handling in offline for bulk edit #86978
- fix: announce selected state in accessibility label for Chrome+VoiceOver #87122
- refactor: remove deprecatedAllTransactions in getReportActionWithSmartscanError #87129
- fix bank account ending shows incorrect BA after reselect #87152
- Allow spend rule edits/delete #87180
- refactor navigateToAndCreateGroupChat to use currentAccountID from useOnyx #87203
- fix A11y - Android - The color code also announces when navigating to the header text #87258
- [No QA] Fix crash on startup on mobile #87323
- Refactor ConfirmModal usage in workspace settings pages part 3 #87334
- Fix Different typing mode when rotating device from portrait to landscape #87338
- Remove Onyx.connect() for the key: ONYXKEYS.COLLECTION.REPORT in src/libs/ReportUtils.ts (part 2) #87339
- [NoQA] tests: PureReportActionItem - phase 1 #87347
- perf: Optimize getTransactionsSections and getReportSections #87363
- Fix Cmd+K search missing workspace members and blocking selection during loading #87367
- decompose-composer 2: Activity for EmojiPicker and PopoverMenu #87394
- fix: Room header displays a two-line description inconsistently #87397
- [Performance] Pre-render Search under RHP for instant post-submit navigation on mobile #87404
- Update copy #87419
- pass amountOwed to shouldRestrictUserBillableActions by using useOnyx part 3 #87446
- refactor getValidOptions to use conciergeReportID from useOnyx #87449
- Reset footerSize when ListFooterComponent is removed in draggable-flatlist patch #87463
- [No QA] Fix iOS bundle command #87464
- Bump Onyx to 3.0.58 [v2] #87484
- [No QA] add selectors to COLLECTION.POLICY subscriptions in composer and system chat footer #87488
- Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/SubscriptionUtils Part 1 #87510
- Fix - App crashes when importing CSV of employees #87520
- [No QA]: Move delete/cleanup functions to IOU/DeleteMoneyRequest.ts #87524
- Part 5 - Thread delegateEmail through buildOptimisticTaskReportAction, completeTask, reopenTask, deleteTask #87527
- follow-up-v2: Screen Reader: Many Pages: There is no dialog role and title announced #87538
- Show Central invoicing instead of card details for travel invoicing transactions #87546
- [No QA] Fix flaky PersonalDetailsOnboarding tests #87555
- [No QA] refactor: add selector to AccountManagerBanner for PERSONAL_DETAILS_LIST #87558
- [No QA] add two-level gate pattern to ReportNotFoundGuard #87559
- [No QA]: Move reject functions to IOU/RejectMoneyRequest.ts #87561
- Part 4: Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/actions/Policy/Policy.ts #87566
- fix no unreported expenses page doesn't fit on landscape and doesn't scroll in Reports #87575
- [No QA]: Move payment functions to IOU/PayMoneyRequest.ts #87576
- [No QA] Remove redundant selector loop in useParticipantsInvoiceReport #87580
- Use ActivityIndicator instead of FullscreenLoadingIndicator in ProfilePage #87585
- Use ActivityIndicator instead of FullscreenLoadingIndicator in OnfidoPrivacy #87586
- [No QA] Replace FullscreenLoadingIndicator with ActivityIndicator in OnyxTabNavigator #87588
- Update mobile order of sections on Home screen #87595
- [No QA] hoist conciergeReportID and precompute chatTabBrickRoad in context #87601
- [No QA] Add Gusto icon and shared presentation pieces #87608
- Fix task button truncation and bottom border radius in search tables #87619
- Fix Chat - App returns to main chat after refreshing Flag as offensive RHP in thread #87622
- [No QA] Remove freezeCard beta #87623
- Increase THUMBNAIL_MAX_WIDTH from 256 to 512 for improved thumbnail quality #87645
- Removed useless isValidCurrency check #87693
- [NoQA] Split accounting and HR connection groups #87694
- Fix frozen card admin name font size #87699
- [NoQA] Refactor: Created convertToDisplayString in CurrencyListContext #87701
- Use usePrimaryContactMethod fallback on magic code pages after copilot switch #87711
- Prevent history.back() race in report creation on wide layout and search #87725
- [No QA]: Move report workflow functions to IOU/ReportWorkflow.ts #87745
- Lazy-Load RightModalNavigator #87746
- [NO QA][Home - Empty State] shawn doesnt like fireworks #87764
- Fix PopoverMenu reopening after item selection in wide layout #87770
- [NoQA] Fix reviewer inline comments not posting due to missing allowed-rules.txt #87803
- Fix copy #87821
- Expand fallback condition & DRY up message for clipboard copy #88004
Mobile-Expensify PRs:
Internal QA:
- [Payment due @hungvu193] Fix company cards page not loading for domain-based card accounts #87686 - @stitesExpensify
- [Payment due @dukenv0307] Add a UI to Chronos for creating OOO events #87543 - @AndrewGable
Deploy Blockers:
- [Due for payment 2026-04-28] Spend rules - RHP shows not here page after deleting spend rule #87799
- [Due for payment 2026-05-07] [$250] Rules - Cards empty state shows "All cards already have a rule" when workspace has no card #87800
- [Due for payment 2026-04-28] Spend rule is not grayed out when created offline, no strikethrough when deleted offline #87802
- [Due for payment 2026-04-30] Android - Chat - Composer is no longer highlighted after rotation, emoji picker does not open #87807
- [Due for payment 2026-04-28] Chronos - Start timer button from dropdown menu is not responsive #87815
- [Due for payment 2026-04-28] [$250] Android & iOS - Chronos - Start timer dropdown button is broken #87820
- [Due for payment 2026-04-28] [Due for payment 2026-04-23] Reimbursement - The account number doesn't display on the OldDot style reimbursed message #87967
Chronologically ordered merged PRs (oldest first)
- perf: wrap FAB popover content in Activity to deprioritize hidden updates #86866
- [No QA] add selectors to COLLECTION.POLICY subscriptions in composer and system chat footer #87488
- Fix Different typing mode when rotating device from portrait to landscape #87338
- fix: missing pending indicator for bulk-edited expenses #86954
- fix tax handling in offline for bulk edit #86978
- refactor: remove deprecatedAllTransactions in getReportActionWithSmartscanError #87129
- decompose-composer 2: Activity for EmojiPicker and PopoverMenu #87394
- Remove Onyx.connect() for the key: ONYXKEYS.COLLECTION.REPORT in src/libs/ReportUtils.ts (part 2) #87339
- Fix task button truncation and bottom border radius in search tables #87619
- fix A11y - Android - The color code also announces when navigating to the header text #87258
- fix: Profile - Legal Name fields accept " , "and " ; " without showing error message #84650
- Mobile-Expensify submodule update to
9.3.58-1— Adhoc Build - Increase THUMBNAIL_MAX_WIDTH from 256 to 512 for improved thumbnail quality #87645
- Fix Cmd+K search missing workspace members and blocking selection during loading #87367
- Migrate SearchAutocompleteList to useFilteredOptions #85922
- [No QA] Add Gusto icon and shared presentation pieces #87608
- [No QA]: Move delete/cleanup functions to IOU/DeleteMoneyRequest.ts #87524
- Mobile-Expensify submodule update to
9.3.58-2— Adhoc Build - fix: announce selected state in accessibility label for Chrome+VoiceOver #87122
- Mobile-Expensify submodule update to
9.3.58-3— Adhoc Build - [No QA]: Move reject functions to IOU/RejectMoneyRequest.ts #87561
- Allow spend rule edits/delete #87180
- pass amountOwed to shouldRestrictUserBillableActions by using useOnyx part 3 #87446
- [No QA] Fix crash on startup on mobile #87323
- [NoQA] tests: PureReportActionItem - phase 1 #87347
- Mobile-Expensify submodule update to
9.3.58-4— Adhoc Build - Mobile-Expensify submodule update to
9.3.58-5— Adhoc Build - fix bank account ending shows incorrect BA after reselect #87152
- Mobile-Expensify submodule update to
9.3.58-6— Adhoc Build - fix: Report - Formula report field initial value {report:i} is not persisted & resets to {report:id} #84207
- Mobile-Expensify submodule update to
9.3.58-7— Adhoc Build - Update mobile order of sections on Home screen #87595
- [No QA] Fix flaky PersonalDetailsOnboarding tests #87555
- [No QA] Remove redundant selector loop in useParticipantsInvoiceReport #87580
- [No QA] Fix iOS bundle command #87464
- Mobile-Expensify submodule update to
08ff3fc— Adhoc Build
↳ https://github.com/Expensify/Mobile-Expensify/pull/13911 - Refactor ConfirmModal usage in workspace settings pages part 3 #87334
- Bump Onyx to 3.0.58 [v2] #87484
- [Performance] Pre-render Search under RHP for instant post-submit navigation on mobile #87404
- [No QA]: Move payment functions to IOU/PayMoneyRequest.ts #87576
- refactor navigateToAndCreateGroupChat to use currentAccountID from useOnyx #87203
- Fix chat from new user not becoming un-bold when read offline #84598
- Remove REIMBURSED from the deprecatedOldReportActions list #80706
- Part 4: Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/actions/Policy/Policy.ts #87566
- Fix Chat - App returns to main chat after refreshing Flag as offensive RHP in thread #87622
- fix no unreported expenses page doesn't fit on landscape and doesn't scroll in Reports #87575
- Reset footerSize when ListFooterComponent is removed in draggable-flatlist patch #87463
- [No QA] [HelpDot] Add details on how to freeze or unfreeze an Expensify Card for cardholders #80723
- [No QA] [HelpDot] Add information for admins on freezing/unfreezing an Expensify Card for admins #80724
- [No QA] refactor: add selector to AccountManagerBanner for PERSONAL_DETAILS_LIST #87558
- [No QA] add two-level gate pattern to ReportNotFoundGuard #87559
- [No QA] hoist conciergeReportID and precompute chatTabBrickRoad in context #87601
- Use usePrimaryContactMethod fallback on magic code pages after copilot switch #87711
- Show Central invoicing instead of card details for travel invoicing transactions #87546
- refactor getValidOptions to use conciergeReportID from useOnyx #87449
- refactor: Remove shouldHandleNavigation from sendMoney and submitPerDiemExpense #86619
- [No QA] Remove freezeCard beta #87623
- fix: Room header displays a two-line description inconsistently #87397
- fix: iOS - Copilot - App returns to login page after removing copilot #86844
- Prevent history.back() race in report creation on wide layout and search #87725
- Fix frozen card admin name font size #87699
- perf: Optimize getTransactionsSections and getReportSections #87363
- [No QA] Docs: Add view: operator to search operators help article #86778
- Mobile-Expensify submodule update to
9.3.58-8— Adhoc Build - Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/SubscriptionUtils Part 1 #87510
- Mobile-Expensify submodule update to
9.3.58-9— Adhoc Build - [NO QA][Home - Empty State] shawn doesnt like fireworks #87764
- Fix PopoverMenu reopening after item selection in wide layout #87770
- Removed useless isValidCurrency check #87693
- Copy odometer data during transaction merge #86557
- Fix - App crashes when importing CSV of employees #87520
- Lazy-Load RightModalNavigator #87746
- [Payment due @hungvu193] Fix company cards page not loading for domain-based card accounts #87686
- [No QA] Update business bank account help articles #86599
- follow-up-v2: Screen Reader: Many Pages: There is no dialog role and title announced #87538
- Fix issue where owner becomes both first and second approver after removing second approver #84728
- [NoQA] Split accounting and HR connection groups #87694
- [NoQA] Refactor: Created convertToDisplayString in CurrencyListContext #87701
- Part 5 - Thread delegateEmail through buildOptimisticTaskReportAction, completeTask, reopenTask, deleteTask #87527
- Update copy #87419
- [No QA]: Move report workflow functions to IOU/ReportWorkflow.ts #87745
- Use ActivityIndicator instead of FullscreenLoadingIndicator in OnfidoPrivacy #87586
- Use ActivityIndicator instead of FullscreenLoadingIndicator in ProfilePage #87585
- [No QA] Replace FullscreenLoadingIndicator with ActivityIndicator in OnyxTabNavigator #87588
- Mobile-Expensify submodule update to
9.3.59-0— Adhoc Build - [Payment due @dukenv0307] Add a UI to Chronos for creating OOO events #87543
- Mobile-Expensify submodule update to
9.3.59-1— 48fd645 - [NoQA] Fix reviewer inline comments not posting due to missing allowed-rules.txt #87803
- Mobile-Expensify submodule update to
9.3.59-2— f60586d - Fix copy #87821
- Mobile-Expensify submodule update to
9.3.59-3— b38df6a - Expand fallback condition & DRY up message for clipboard copy #88004
- Mobile-Expensify submodule update to
9.3.59-4— b2fba10
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
Assignees
Labels
StagingDeployCash🔐 LockCashDeploys 🔐Prevent new code from being deployed to stagingPrevent new code from being deployed to staging
Activity
tgolen commentedon Apr 13, 2026
Demoting #87815
tgolen commentedon Apr 13, 2026
Demoting #87820
m-natarajan commentedon Apr 14, 2026
Regression progress is at 75%
PRs Failing:
#87394 faced on Web with #87824
#87484 faced on Web and Android with #87094
#87520 faced on iOS with #87520
PRs Untested:
Several still pending validation: Web 6 | Android 21 | iOS 22
IuliiaHerets commentedon Apr 14, 2026
Regression is completed in BS
PRs Failing:
#80706 faced on Native apps with #87843
#86619 failed with #87328 and #87841
#86954 failed on iOS with original issues, comment
#87129 faced on Android with #80518 repro in PROD checking it off
#87152 failed on iOS with #87904 repro in PROD checking it off
#87338 faced on Android with #87860 repro in PROD checking it off
#87339 faced on Android with #87861 repro in production checking it off
#87394 failed on Web with #87824
#87484 faced with #87094 repro in PROD checking it off
#87520 failed on iOS with an original issue, comment
PRs Untested:
#87122 outside the scope of our testing, comment
#87258 outside the scope of our testing, comment
#87546 asked to check internally
kavimuru commentedon Apr 14, 2026
Regression is completed in BS
PRs Failing:
#80706 faced on Native apps with #87843
#86619 failed with #87328 and #87841
#86954 failed on iOS with original issues, #86954 (comment)
#87129 faced on Android with #80518 repro in PROD checking it off
#87152 failed on iOS with #87904 repro in PROD checking it off
#87338 faced on Android with #87860 repro in PROD checking it off
#87339 faced on Android with #87861 repro in production checking it off
#87394 failed on Web with #87824
#87484 faced with #87094 repro in PROD checking it off
#87520 failed on iOS with an #86704, #87520 (comment)
PRs Untested:
#87122 outside the scope of our testing, #87122 (comment)
#87258 outside the scope of our testing, #87258 (comment)
#87546 #87546 (comment) to check internally
Critical test cases that are failing:
Connect Netsuite with #87227
Critical Viral Path with #48727
Login - Google Sign In with #72386
User is able to book a flight in Expensify Travel with https://github.com/Expensify/Expensify/issues/599670
AndrewGable commentedon Apr 15, 2026
Only one last deploy blocker remains
AndrewGable commentedon Apr 15, 2026
Deploy blocker finished! Waiting for staging ios to finish uploading.
AndrewGable commentedon Apr 16, 2026