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