What's Changed
- Use ActivityIndicator in ReportChangeWorkspacePage by @MelvinBot in #87592
- Replace FullscreenLoadingIndicator with ActivityIndicator in ScheduleCallPage by @MelvinBot in #87590
- Replace FullscreenLoadingIndicator with ActivityIndicator in DisplayNamePage by @MelvinBot in #87587
- Use ActivityIndicator in ConnectToXeroFlow native loading by @MelvinBot in #87583
- Use ActivityIndicator in ConfirmCustomSegmentList by @MelvinBot in #87584
- Use ActivityIndicator in ConnectToQuickbooksOnlineFlow by @MelvinBot in #87594
- Replace FullscreenLoadingIndicator with ActivityIndicator in DateOfBirthPage by @MelvinBot in #87589
- fix: Button Learn more not available for first time open No workspace found screen by @nkdengineer in #87332
- Bump onyx to 3.0.59 by @VickyStash in #87738
- Adjust Spend Over Time widget's visibility on home page by @mhawryluk in #87577
- [Payment due @dukenv0307] Add a UI to Chronos for creating OOO events by @tgolen in #87543
- Part 1 - Thread currentUserAccountID through hold/permission functions in ReportUtils by @Krishna2323 in #87275
- Fix merchant rule row clipping descender characters by @MelvinBot in #87300
- [NoQA] Fix reviewer inline comments not posting due to missing allowed-rules.txt by @kacper-mikolajczak in #87803
- [No QA] Update Track-Taxes help article with tax disabled alert FAQ by @MelvinBot in #87568
- fix: qbo travel invoicing copy by @ikevin127 in #87713
- [No QA] perf: Raise BillingGracePeriodEnds subscriptions out of list items by @jmusial in #87625
- Fix copy by @luacmartins in #87821
- [No QA] Add images to expense duplicate articles by @stephanieelliott in #86831
- Fix reportAttributes recomputing all reports on transaction updates by @TMisiukiewicz in #87747
- [No QA] Update help site docs for Attendees expense table columns by @MelvinBot in #86991
- Fix Radio buttons are hidden behind navigation bar, unable to scroll down filters by @GCyganek in #87376
- fix unable to scroll down share confirm page in landscape mode by @jakubstec in #87626
- fix odometer receipt page not scrollable in landscape mode by @jakubstec in #87593
- Fix Different map expense creation layout in Track and Split expense by @GCyganek in #87465
- migrate sage intacct autosync and accounting-method by @huult in #87744
- refactor: PureReportActionItem, add SimpleMessageContent by @LukasMod in #87359
- refactor: PureReportActionItem, add ApprovalFlowContent by @LukasMod in #87462
- Filter pending-delete members from approval workflows by @MelvinBot in #87775
- fix: Remove Onyx.connect() for the key: ONYXKEYS.COLLECTION.POLICY (part 3) by @truph01 in #86908
- Release 3: UI Updates for Expensify Cards by @narefyev91 in #86848
- Extract SelectionToolbar from MoneyRequestReportActionsList by @adhorodyski in #87659
- refactor: PureReportActionItem, add PaymentContent by @LukasMod in #87399
- refactor clearCreateChatError, clearTaskErrors and navigateToAndOpenReportWithAccountIDs to use isSelfTourViewed from useOnyx by @dukenv0307 in #87231
- feat: show Invite button on Members page for money request reports by @M00rish in #82065
- refactor: PureReportActionItem, add PolicyChangeLogContent by @LukasMod in #87492
- refactor: PureReportActionItem, add ActionableWhisperContent by @LukasMod in #87507
- Add a map on the GPS screen that shows the trip live by @GCyganek in #87103
- Part 2: Remove Onyx.connect() for the key: ONYXKEYS.COLLECTION.REPORT_ACTIONS in src/libs/actions/Policy/Policy.ts by @DylanDylann in #87335
- Fix unreported expenses not showing up in unapproved card by @JS00001 in #87895
- [No QA] Simplify useAllPolicyExpenseChatReportActions by @TMisiukiewicz in #87894
- refactor getSearchOptions to use conciergeReportID from useOnyx by @dukenv0307 in #87772
- Fix: Share sheet flow is busted by @twilight2294 in #86632
- [No QA] perf: Raise BillingGracePeriodEnds subscriptions out of list items v2 by @jmusial in #87849
- Add rotation for PDF attachments by @pasyukevich in #86760
- [No QA] Remove selector from useArchivedReportsIdSet by @TMisiukiewicz in #87899
- Part 6 - Thread delegateEmail through getFinishOnboardingTaskOnyxData and completeTestDriveTask by @Krishna2323 in #87809
- Refactor
deleteTrackExpenseby @parasharrajat in #86608 - Fix issue with Split reverting was not successful for expense with negative amount by @ZhenjaHorbach in #84705
- Add onSelected handler to Chronos timer dropdown option by @MelvinBot in #87823
- [NO QA] Improve cherry-pick workflow Slack notifications by @MelvinBot in #87791
- [No QA] refactor: move hold expense helpers into existing IOU/Hold.ts by @DylanDylann in #87890
- [No QA] Remove green color from + button references in help docs by @MelvinBot in #87573
- Update empty workspace copy text by @MelvinBot in #86775
- Skip stale hasOutstandingChildRequest on empty trip rooms by @MobileMage in #86744
- Add trackExpensesWithConcierge onboarding RHP variant by @MelvinBot in #85762
- Call getThumbnailAndImageURIs unconditionally in ReceiptCell by @MelvinBot in #87417
- [Payment due @DylanDylann] [NO QA] Add custom Sentry spans for odometer distance expenses by @Julesssss in #87813
- [iOS] Fix crash after inviting a user to a group chat by @marufsharifi in #87169
- [Onyx Audit] Migrate keys to RAM-only part 2/3 - fix by @JKobrynski in #87254
- refactor markRejectViolationAsResolved to use isOffline by @dukenv0307 in #86829
- [No QA] Add Connect-Personal-Cards.md for R3 new card import by @MelvinBot in #87059
- [Payment due @situchan] Hide ACH if report is non reimbursable by @s77rt in #87552
- [No QA][RN iOS prebuilds] Use
install_modules_dependenciesingroup-ib-fp.podspecby @mateuuszzzzz in #87879 - [No QA] Update Personal Karma help article for NewDot toggle flow by @MelvinBot in #87571
- fix: Multiple expenses appears in confirmation page by @nkdengineer in #87842
- fix: checkbox alignment and the padding of last item in onboarding interested features page by @samranahm in #87176
- Fix duplicate self DMs in LHN after splitting expense (Vacation Delegate) by @marufsharifi in #87082
- [No QA] Create import-via-csv-personal.md by @dylanexpensify in #80549
- [No QA] docs: Add help site docs for Assign new cards feature by @MelvinBot in #86531
- [No QA] Update Account-Settings.md by @brianlee-expensify in #87917
- [No QA] Add help site docs for Duplicate Report feature by @MelvinBot in #87835
- Fix Chronos timer dropdown button layout on native platforms by @MelvinBot in #87828
- [No QA] Update Distance-Expenses help article to include tax field by @MelvinBot in #87248
- Fix lost/duplicated requests in PersistedRequests (Issues 2, 3, 4, 5) + deploy blocker fix by @szymonzalarski98 in #85920
- Fix travel invoicing card display in expense detail and EReceipt by @blimpich in #87918
- Fix No members page has overlapping elements when changing approver by @GCyganek in #87953
- fix text description "successfully authenticated" overlaps with the Got it in landscape mode by @jakubstec in #87845
- Fix spend rule card page landscape overlap by @MelvinBot in #87678
- [Card Rules] Hide deactivated cards from rule summary and selection by @MelvinBot in #87679
- Empty state hide top bar on scroll by @mrejdak in #87620
- Add offline visual feedback for spend rules by @MelvinBot in #87822
- [No QA] Revert "Do not show notifications for non-actionable actions" by @s77rt in #87542
- feat: display assigned account manager, partner manager, guide by @Pujan92 in #86952
- [NO QA] Fix flaky MiddlewareTest by using resetQueue() in beforeEach by @MelvinBot in #87945
- Extract secondary action hooks and components from MoneyReportHeader by @TMisiukiewicz in #87361
- Hide Edit expense context menu on settled/approved/closed reports by @wildan-m in #87650
- Moved auth only providers to AuthScreen by @shubham1206agra in #86441
- [Payment due @rojiphil] Deleted transactions on search V2 by @jnowakow in #86938
- Fix blank VerticalCreditCards icon on native Wallet page by @MelvinBot in #87723
- [No QA] refactor: move update params into existing IOU/UpdateMoneyRequest.ts by @DylanDylann in #87896
- fix: UNREPORTEDTRANSACTION report action not show and no Explain sparkle link by @paulnjs in #87704
- [Wiring the UI] Revamp search page actions bar by @bernhardoj in #86297
- Migration navigation from InteractionManager to TransitionTracker V3 by @collectioneur in #85759
- fix: Create expense from QAB after split expense, Confirm page loads infinitely by @TaduJR in #87695
- Use threadReportID for report lookup in ReviewTaxCode by @MelvinBot in #87943
- [No QA] refactor: extract bulk edit and report assignment functions from IOU/index.ts by @DylanDylann in #87839
- [No QA] Rewrite React Compiler CI compliance check by @roryabraham in #87182
- Refactor searchMatchUtils out from optionsListUtils by @sharabai in #86982
- [Payment due @huult] Use error message from server for scan failed receipts by @MonilBhavsar in #87111
- Refactor: migrate convertToDisplayString to useCurrencyListActions hook (part 1) by @shubham1206agra in #87880
- [InternalQA] Update the GroupIB Fraud Protection snippet by @cristipaval in #88006
- [No QA] Update help site: document bulk expense duplication by @MelvinBot in #87569
- [No QA] Update React Compiler docs for new CI compliance check by @roryabraham in #88001
- fix: correctly resolve mention whispers created during message edits by @deetergp in #86264
- fix: Downloaded video has corrupted format by @Eskalifer1 in #86915
- clean up shouldRestrictUserBillableActions by @dukenv0307 in #87777
- Fix case-sensitive CSV import enabled column comparison by @MelvinBot in #87783
- Expand fallback condition & DRY up message for clipboard copy by @deetergp in #88004
- Add monthly spend limit per member for travel invoicing by @allgandalf in #86398
- perf: decompose MoneyRequestConfirmationListFooter into section components by @OlimpiaZurek in #87496
- Migrate main chat to FlashList with inverted flag by @VickyStash in #85114
- Fix leading colon in tag value and false tag violations for non-required levels by @wildan-m in #87198
- [Payment due @ikevin127] Fix how we handle card names on search/reports by @JS00001 in #87922
- fix: Add updated automatic/scan flow to native share sheet creation flow by @TaduJR in #87142
- Hide duplicate card row error when feed connection is broken by @MelvinBot in #87553
- [No QA] Auto-check NO QA Mobile-Expensify PRs in deploy checklist by @MelvinBot in #87816
- Fix infinite onboarding navigation loop crash on iOS by @mountiny in #88014
- 🍒 Cherry pick PR #88185 to staging 🍒 by @os-botify[bot] in #88369
Full Changelog: 9.3.59-4...9.3.60-22