9.4.46-10
Expensify/App9.4.46-10Jul 31, 2026by github-actions[bot]
AI Summary
This release emphasizes travel booking enhancements and vendor management, adding a Travel setup task and connection status indicators for bank accounts. It also improves stability with retry buttons for errors and fixes UI layout issues.
Key Highlights
- Add Travel setup task to Getting Started section
- Show connection status and last sync time for bank accounts and cards
- Fix Inbox filter tabs overlapping for long labels
- Add 'Retry' button to 'Something went wrong' error states
- Add filter negation feature
New Features
- Travel setup task
- Bank account/card connection status and sync time
- Retry button for error states
- Accessibility (A11y) improvements for report settings
- Filter negation feature
Full Release Notes
## What's Changed * [No QA] Drop 'Hey there!' greeting from travel nudge copy by @blimpich in https://github.com/Expensify/App/pull/97132 * [Payment due @mkhutornyi] Add Vendors slot to Workspace > More features by @Beamanator in https://github.com/Expensify/App/pull/96890 * [Payment due @suneox] Fix exact merchant group exports by @ShridharGoel in https://github.com/Expensify/App/pull/97046 * [CP Staging] Revert "fix: Tax - No autofocus in the name editing menu taxes" by @war-in in https://github.com/Expensify/App/pull/97125 * [No QA] Docs updates for E/A#94601 QuickBooks Online Items import setting by @MelvinBot in https://github.com/Expensify/App/pull/95843 * fix: block removing a workspace member who holds an active Expensify … by @yusufdeveloper2903 in https://github.com/Expensify/App/pull/96267 * Fix: preserve Book travel flow after entering traveler name by @x-dev90 in https://github.com/Expensify/App/pull/96339 * [No QA] [Snyk] Security upgrade svgo from 4.0.0 to 4.0.2 by @MelvinBot in https://github.com/Expensify/App/pull/96749 * [No QA] Docs updates for E/A#79300 approvers can edit expenses on draft reports by @MelvinBot in https://github.com/Expensify/App/pull/96537 * [No QA] Remove unsafe type assertions from getStateForDynamicRouteTests.ts tests by @KJ21-ENG in https://github.com/Expensify/App/pull/96783 * Bump Android module targetSdkVersion and compileSdkVersion to 36 by @marcaaron in https://github.com/Expensify/App/pull/96774 * [No QA] Docs updates for E/A#96912 optional Card name column for CSV import by @MelvinBot in https://github.com/Expensify/App/pull/97143 * Ignore pasted files in the composer while editing a comment by @mukhrr in https://github.com/Expensify/App/pull/96729 * [No QA] Remove unsafe type assertions from PolicyTest.ts tests by @KJ21-ENG in https://github.com/Expensify/App/pull/96513 * [No QA] Remove unsafe type assertions from APITest.ts tests by @KJ21-ENG in https://github.com/Expensify/App/pull/96776 * [CP Staging] Revert "perf: defer central report list on Inbox tab navigation" by @marcochavezf in https://github.com/Expensify/App/pull/97166 * Fix Inbox filter tabs overlapping for long labels by @Abdulloh0109 in https://github.com/Expensify/App/pull/95381 * [No QA] Remove unsafe type assertions from SidebarUtilsTest.ts tests by @KJ21-ENG in https://github.com/Expensify/App/pull/96674 * Kepp `Mark as paid` label and action in sync after selecting `Pay with business account` by @MelvinBot in https://github.com/Expensify/App/pull/96525 * Add Travel setup task to Getting Started section by @blimpich in https://github.com/Expensify/App/pull/97133 * Fix losing in-progress bank account when backing out of change flow by @VickyStash in https://github.com/Expensify/App/pull/96739 * [CP Staging] Add missed entry screen for WORKSPACE_COMPANY_CARD_EXPORT by @s77rt in https://github.com/Expensify/App/pull/97164 * [No QA] Upgrade openai dependency to 7.0 by @roryabraham in https://github.com/Expensify/App/pull/97189 * [CP staging] Revert "Navigate to the clicked expense in a multi-expense report preview- #92546" by @MonilBhavsar in https://github.com/Expensify/App/pull/97198 * Optimize top-N report selection in option list building by @jmgraa in https://github.com/Expensify/App/pull/96748 * [Payment due @mkhutornyi] Sage Intacct: Default vendor as navigable arrow row with updated copy by @MelvinBot in https://github.com/Expensify/App/pull/97016 * Fix merge navigation from Inbox opening Spend tab by @huult in https://github.com/Expensify/App/pull/97186 * feat: show connection status and last sync time for bank accounts and cards by @marufsharifi in https://github.com/Expensify/App/pull/93852 * fix report rph closes after attendees save by @huult in https://github.com/Expensify/App/pull/97190 * Migrate money request destination step to dynamic routes (#83850 part 1) by @suneox in https://github.com/Expensify/App/pull/96949 * [No QA] Add archivedDate to the Policy Onyx type by @rlinoz in https://github.com/Expensify/App/pull/97150 * perf: defer central report list on Inbox tab navigation by @BartekObudzinski in https://github.com/Expensify/App/pull/97197 * Spend-Hybrid-Tap on checkbox does not select the group by @lorretheboy in https://github.com/Expensify/App/pull/96208 * [CP Staging] Fix: keep "Add receipt" label on one line in compact confirmation banner by @MelvinBot in https://github.com/Expensify/App/pull/97207 * Expense - Two different contacts are selected when trying to submit IOU by @lorretheboy in https://github.com/Expensify/App/pull/96884 * Prevent a background avatar picker from adopting a live crop draft by @ahmdshrif in https://github.com/Expensify/App/pull/96465 * [No QA] Docs updates for E/A#95105 Merchant Rules spreadsheet import flow by @MelvinBot in https://github.com/Expensify/App/pull/96359 * Stabilize useTodoCounts result reference by @LukasMod in https://github.com/Expensify/App/pull/97109 * Hide top-level required tag toggle for independent multi-level tags by @MobileMage in https://github.com/Expensify/App/pull/94760 * [CP staging] prevent trial payment reminder modal flicker on login by @dukenv0307 in https://github.com/Expensify/App/pull/97212 * [Payment due @brunovjk] Add Consolidated Travel Billing press release to Home tab Announcements by @MelvinBot in https://github.com/Expensify/App/pull/95998 * Add Retry button to "Something went wrong" error states by @MelvinBot in https://github.com/Expensify/App/pull/96955 * [A11y] Add Save button to Report settings single-select pages (Write capability, Notification preference, Visibility) by @MelvinBot in https://github.com/Expensify/App/pull/94557 * Fix invoice Pay from Search transaction rows (resolve chatReport in PayActionCell) by @MelvinBot in https://github.com/Expensify/App/pull/95873 * Fix error flash when opening the Attendees field by @MelvinBot in https://github.com/Expensify/App/pull/97176 * Add filter negation feature by @bernhardoj in https://github.com/Expensify/App/pull/93909 * fix: clear stale duplicate detection after removing offline expense by @x-dev90 in https://github.com/Expensify/App/pull/95994 * feat: Add shared Shift+Click range-selection engine and unify Table onto it (1/3) by @TaduJR in https://github.com/Expensify/App/pull/95647 * Disable Unlock bank account button while offline in locked-BA modal by @dilshodmackbook-sketch in https://github.com/Expensify/App/pull/96261 * Underline sign-in Licenses link in high-contrast themes (WCAG 1.4.1) by @MelvinBot in https://github.com/Expensify/App/pull/96618 * Pass hasReportActions to openReport (p4) by @bernhardoj in https://github.com/Expensify/App/pull/96864 * fix: let any successful request clear the INTERNET_UNREACHABLE hard stop by @adhorodyski in https://github.com/Expensify/App/pull/96881 * Snapshot picked files into memory-backed Files to prevent request queue poisoning by @elirangoshen in https://github.com/Expensify/App/pull/96940 * [noqa] fix: reconnect Pusher when a PONG is missed instead of only logging by @adhorodyski in https://github.com/Expensify/App/pull/96883 * 92969: Add "expand" button overlay to charts for full-screen mode by @abbasifaizan70 in https://github.com/Expensify/App/pull/95249 * Backport missing ViewState guard for updateOverflowInset by @KJ21-ENG in https://github.com/Expensify/App/pull/97010 * Skip report name recompute for badge-only policy changes in reportAttributes by @TMisiukiewicz in https://github.com/Expensify/App/pull/97093 * [Payment due @daledah] fix(navigation): land create-flow deeplinks on Spend instead of Inbox by @WojtekBoman in https://github.com/Expensify/App/pull/96887 * [CP staging] modal is shown when account has no workspace by @dukenv0307 in https://github.com/Expensify/App/pull/97230 * Add agent template picker structure by @shubham1206agra in https://github.com/Expensify/App/pull/95991 * [No QA] Tighten Node engine pin to 26.5.0 by @NicolasBonet in https://github.com/Expensify/App/pull/97265 * [Payment due @suneox] Regenerate agent rule title when its content is edited by @MelvinBot in https://github.com/Expensify/App/pull/96896 * [Payment due @linhvovan29546] Prevent removing or demoting RuleBot while Agent rules exist by @MelvinBot in https://github.com/Expensify/App/pull/96981 * Rename magic code references to validateCode by @NikkiWines in https://github.com/Expensify/App/pull/96328 * Reuse existing Plaid feed on reconnect instead of creating a duplicate by @MelvinBot in https://github.com/Expensify/App/pull/96349 * [No QA] Remove unsafe type assertions from UserTest.ts tests by @KJ21-ENG in https://github.com/Expensify/App/pull/96673 * fix: scale Search Router Spend context with system font size by @nabi-ebrahimi in https://github.com/Expensify/App/pull/97281 * Fix `CollapsibleHeaderOnKeyboard` not restoring header height after rotation by @GCyganek in https://github.com/Expensify/App/pull/97214 * [GPS] Add stop address editing by @GCyganek in https://github.com/Expensify/App/pull/90002 * CopyPolicySettings: add missing rules and categories fields by @ishpaul777 in https://github.com/Expensify/App/pull/93936 * Revert #94565 and #97214 (Agents input auto scroll + CollapsibleHeaderOnKeyboard rotation fix) by @NicolasBonet in https://github.com/Expensify/App/pull/97298 * Fix bugs for selfDM splits feature by @ZhenjaHorbach in https://github.com/Expensify/App/pull/92055 * [CP Staging] Preserve self-closing tags and entities when tokenizing comment HTML by @roryabraham in https://github.com/Expensify/App/pull/97316 * feat: Enable `react-native-nitro-fetch` (V4) by @chrispader in https://github.com/Expensify/App/pull/97069 * Gate travel frequency and reconciliation account selection behind a Save button (a11y On Input, PR 5) by @MelvinBot in https://github.com/Expensify/App/pull/97074 * Make less calls to log api command by @iwiznia in https://github.com/Expensify/App/pull/97334 * [Payment due @ChavdaSachin] Add bulk actions for company cards by @KJ21-ENG in https://github.com/Expensify/App/pull/94678 * Fix Submit to my employer: Report field showing None and back button swapping the report by @abzokhattab in https://github.com/Expensify/App/pull/97057 * Send reveal_card_details reason from the missing-personal-details magic code page by @MelvinBot in https://github.com/Expensify/App/pull/96733 * 83869 migrate transaction duplicate v6 by @huult in https://github.com/Expensify/App/pull/96738 * Extract authToken from gap-deferred sign-in while OpenApp is in-flight by @VickyStash in https://github.com/Expensify/App/pull/97097 * [Payment due @thelullabyy] Fix mixed group export selection by @ShridharGoel in https://github.com/Expensify/App/pull/96133 * [NO QA] Revise 'Repaid in the last 30 days' to 'Repaid last 30 days' by @jamesdeanexpensify in https://github.com/Expensify/App/pull/97346 * [Payment due @Eskalifer1] Search - Load categories from all workspaces by @ShridharGoel in https://github.com/Expensify/App/pull/96460 * perf: O(N) approver filter on workspace members page by @TMisiukiewicz in https://github.com/Expensify/App/pull/97330 * add table semantics to workspace data tables for screen readers by @aimane-chnaif in https://github.com/Expensify/App/pull/93335 * [No QA] Show reconciled integrations messages without export-error text by @yuwenmemon in https://github.com/Expensify/App/pull/97173 * Book Travel enablement flow has no progress stepper by @linhvovan29546 in https://github.com/Expensify/App/pull/95692 * Hide role-change options for the Authorized Payer by @MelvinBot in https://github.com/Expensify/App/pull/97272 * Add Next button to company card assignee step instead of tap-to-advance by @MelvinBot in https://github.com/Expensify/App/pull/97259 * fix (batch 1): isNewManualExpenseFlowEnabled beta flag regressions by @thelullabyy in https://github.com/Expensify/App/pull/96717 * chore: upgrade react-native-keyboard-controller to 1.22.2 by @jakubstec in https://github.com/Expensify/App/pull/97082 * [No QA] [Performance] Add `API.writeWhenReady` for deferred optimistic writes by @JakubKorytko in https://github.com/Expensify/App/pull/96490 * fix: Invoice - stop infinite loading when viewing an offline-created invoice online by @dilshodmackbook-sketch in https://github.com/Expensify/App/pull/97112 * Gate participant role and search bulk-edit boolean selection behind a Save button (a11y On Input, PR 7) by @MelvinBot in https://github.com/Expensify/App/pull/97076 * [Payment due @eh2077] [No QA] Prefer live account on personal details login collision by @c3024 in https://github.com/Expensify/App/pull/96469 * Update conciergeReportID to remove Onyx.connect - 31 by @cretadn22 in https://github.com/Expensify/App/pull/96876 * [No-QA] Part 3: Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/ReportUtils.ts by @thelullabyy in https://github.com/Expensify/App/pull/97054 * Fix/search saved tab native highlight by @neerajbachani in https://github.com/Expensify/App/pull/90138 * fix crash on windows when resize browser to specific width by @apeyada in https://github.com/Expensify/App/pull/96170 * [No QA] Remove unsafe assertions from DeployChecklistUtilsTest.ts by @KJ21-ENG in https://github.com/Expensify/App/pull/96782 * [Part 1.2] Remove Onyx.connect(ONYXKEYS.SESSION) in ReportActionsUtils: thread currentUserAccountID through getReimbursedMessage by @truph01 in https://github.com/Expensify/App/pull/96590 * [No QA] Reduce unsafe type assertions in ReportActionsUtilsTest tests by @KJ21-ENG in https://github.com/Expensify/App/pull/96779 * [No QA] Remove unsafe type assertions from BulkEditTest.ts tests by @KJ21-ENG in https://github.com/Expensify/App/pull/96671 * [Part 3.2] Remove Onyx.connect(ONYXKEYS.SESSION) in ReportActionsUtils: thread currentUserAccountID through wasActionTakenByCurrentUser by @truph01 in https://github.com/Expensify/App/pull/96702 * [No QA] Fix typecheck on main: widen static search tab keys for saved searches by @mountiny in https://github.com/Expensify/App/pull/97370 * Fix required tags state after switching tag levels by @nabi-ebrahimi in https://github.com/Expensify/App/pull/92338 * Surface "Import workflows" on the Workflows page by @MelvinBot in https://github.com/Expensify/App/pull/94694 * Fix invoice-delete back-navigation loop by gating navigate-away on the deletion rising edge by @MelvinBot in https://github.com/Expensify/App/pull/97194 * Reuse the active workspace when adding a bank account to pay an invoice as a business by @wildan-m in https://github.com/Expensify/App/pull/97047 **Full Changelog**: https://github.com/Expensify/App/compare/9.4.45-14...9.4.46-10