9.4.31-0
Expensify/App9.4.31-0Jul 9, 2026by github-actions[bot]
AI Summary
A maintenance release focusing on bug fixes, performance optimizations, and continued refactoring of core components like Onyx and navigation.
Key Highlights
- Fixed custom report field disappearing after approval
- Improved performance by stopping amount field re-renders
- Refactored Onyx.connect() usage for better maintainability
- Added useCachedAttachmentSource hook for optimized attachment handling
- Fixed Sage Intacct vendor toggle crash when vendors list is empty
New Features
- useCachedAttachmentSource hook for optimized attachment handling
- Manual reimbursement workspaces preferred payer
- Payments admin workspace access
- Paid status column
Full Release Notes
## What's Changed * Fix custom report field disappearing for submitter after report approval by @MelvinBot in https://github.com/Expensify/App/pull/95337 * [No QA] Remove fmt-changed npm script by @roryabraham in https://github.com/Expensify/App/pull/95327 * [No QA] Update Create-and-Use-Custom-Agents.md by @stephanieelliott in https://github.com/Expensify/App/pull/95313 * Part 1 - [Rules Revamp] Clean-up and Polish by @Krishna2323 in https://github.com/Expensify/App/pull/95289 * [No QA] Align remote build workflows with testBuild ref resolution by @war-in in https://github.com/Expensify/App/pull/95407 * fix: prevent failed search retry flicker by @nabi-ebrahimi in https://github.com/Expensify/App/pull/95043 * [No QA] Reduce unsafe type assertions in TSCompilerUtils tests by @KJ21-ENG in https://github.com/Expensify/App/pull/95269 * Fix Sage Intacct default vendor toggle crash when vendors list is empty by @mountiny in https://github.com/Expensify/App/pull/95345 * Web - Spend - View button size is different on Reports and Expenses on Spend tab by @lorretheboy in https://github.com/Expensify/App/pull/95019 * Fix admin invite onboarding task by @KJ21-ENG in https://github.com/Expensify/App/pull/91950 * Pass reportPreviewAction as param to convertIOUReportToExpenseReport by @bernhardoj in https://github.com/Expensify/App/pull/95172 * feat: implement useCachedAttachmentSource hook for optimized attachment handling by @lorretheboy in https://github.com/Expensify/App/pull/94640 * perf: Stop amount field re-rendering on background Onyx writes by @OlimpiaZurek in https://github.com/Expensify/App/pull/94295 * Perf - lazy mount NavigateGlobalCreateProvider for faster scan camera by @rinej in https://github.com/Expensify/App/pull/94693 * Fix: SmartScan shortcut re-navigates when already on SmartScan screen by @gijoe0295 in https://github.com/Expensify/App/pull/90782 * Forward invitee data on the invite-to-chat mention whisper so the invite email is sent by @wildan-m in https://github.com/Expensify/App/pull/94125 * Update filters bar for tables by @JS00001 in https://github.com/Expensify/App/pull/93963 * [Payment due @dmkt9] Allow manual reimbursement workspaces to set and use a preferred payer by @NikkiWines in https://github.com/Expensify/App/pull/92787 * Ignore scrolling to unread message in transaction thread by @VickyStash in https://github.com/Expensify/App/pull/94704 * refactor: Remove shouldHandleNavigation from createDistanceRequest by @TaduJR in https://github.com/Expensify/App/pull/93545 * [Payment due @cretadn22] Make a new agent a full co-pilot of its creator by @yuwenmemon in https://github.com/Expensify/App/pull/94602 * Migrate InteractionManager - (Newly added usages) part 3 by @collectioneur in https://github.com/Expensify/App/pull/94946 * [No QA] fix: allow lefthook oxfmt when staged files are ignored by @roryabraham in https://github.com/Expensify/App/pull/95448 * [No QA] [Hold for feature] Update help docs for Release 3: People Admin role by @MelvinBot in https://github.com/Expensify/App/pull/93737 * Fix scroll/reorder jump when selecting in the Search In filter by @MelvinBot in https://github.com/Expensify/App/pull/95321 * [No QA] Docs updates for E/A#92885 Print not shown for Draft reports by @MelvinBot in https://github.com/Expensify/App/pull/94635 * [No QA] Update import instructions and FAQ for company cards by @stephanieelliott in https://github.com/Expensify/App/pull/94404 * Increase spacing between Concierge messages and their follow-up buttons by @KioCoan in https://github.com/Expensify/App/pull/95239 * [Payment due @jayeshmangwani] [No QA] Fix Concierge draft completion pacing by @inimaga in https://github.com/Expensify/App/pull/94714 * [CP Staging] Revert "Part 5 - Remove Onyx.connect() for the key: ONYXKEYS.PERSONAL_DETAILS_LIST in src/libs/actions/Report.ts" by @marcaaron in https://github.com/Expensify/App/pull/95440 * Refactor issue 66427: Add reportAttributes parameter to getReportName and getParentNavigationSubtitle functions (Part 1/4) by @hoangzinh in https://github.com/Expensify/App/pull/91295 * fix: show edit icon for inline table cell editing by @x-dev90 in https://github.com/Expensify/App/pull/93907 * 83861 migrate workspace tags part 3 v2 by @huult in https://github.com/Expensify/App/pull/95203 * [Payment due @daledah] [No QA] Docs updates for E/A#94690 Paid status hover tooltip stages by @MelvinBot in https://github.com/Expensify/App/pull/95088 * Show Add additional receipt and Expand buttons on map distance receipt hover by @MobileMage in https://github.com/Expensify/App/pull/93374 * [CP Staging] Fix workspace tax page crash by @bernhardoj in https://github.com/Expensify/App/pull/95467 * [No QA] Pass deviceInfo to SignInWithShortLivedAuthToken by @arosiclair in https://github.com/Expensify/App/pull/95426 * Update Subscription settings from editable push row to a read-only row with an Edit subscription button by @lorretheboy in https://github.com/Expensify/App/pull/94363 * Clear manual form error when waypoints become valid on Map tab by @MelvinBot in https://github.com/Expensify/App/pull/91249 * [No QA] Docs updates for E/A#90937 new Spend table custom columns by @MelvinBot in https://github.com/Expensify/App/pull/94956 * Part 10: Remove Onyx.connect() for the key: ONYXKEYS.PERSONAL_DETAILS_LIST by @DylanDylann in https://github.com/Expensify/App/pull/95030 * [No QA] Update help docs for Release 1: Export current view by @MelvinBot in https://github.com/Expensify/App/pull/94945 * Fix: domain groups crash by @marufsharifi in https://github.com/Expensify/App/pull/95484 * Fix IOS - Expense-Input field loses focus after dismissing the "Discard changes" modal by @collectioneur in https://github.com/Expensify/App/pull/95181 * Tighten reportActionsList on trackExpense and gate the hook in useExpenseSubmission by @DylanDylann in https://github.com/Expensify/App/pull/93156 * [No QA] Harden `TransitionTracker` callback handling by @JakubKorytko in https://github.com/Expensify/App/pull/95481 * [No QA] Docs updates for E/A#93543 clarify keyword-only Spend search bar by @MelvinBot in https://github.com/Expensify/App/pull/94638 * Fix: route Submit workspace Control-role import upgrade to Control plan by @MelvinBot in https://github.com/Expensify/App/pull/94859 * Add paid status column by @dukenv0307 in https://github.com/Expensify/App/pull/95476 * [No QA] Add New Expensify Sage Intacct INT093 help article by @inimaga in https://github.com/Expensify/App/pull/95485 * Add payments admin workspace access by @ShridharGoel in https://github.com/Expensify/App/pull/94018 * Right-anchor the Display popover to match the Filters popover by @MelvinBot in https://github.com/Expensify/App/pull/95065 * Fix people admin workspace access pages by @ShridharGoel in https://github.com/Expensify/App/pull/95338 * [No QA] Part 1: Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/ReportUtils.ts by @thelullabyy in https://github.com/Expensify/App/pull/92891 * Add text-based filter length validation by @bernhardoj in https://github.com/Expensify/App/pull/94013 * Fix emoji suggestion list reopening after closing FAB with ESC by @MelvinBot in https://github.com/Expensify/App/pull/95456 * Refactor: migrate getRate to use usePersonalPolicy hook (part 4) by @shubham1206agra in https://github.com/Expensify/App/pull/95331 * Refactor: migrate getRate to use usePersonalPolicy hook (part 5) by @shubham1206agra in https://github.com/Expensify/App/pull/95334 * Make Certinia prerequisites step content scrollable in landscape by @MelvinBot in https://github.com/Expensify/App/pull/95515 **Full Changelog**: https://github.com/Expensify/App/compare/9.4.30-0...9.4.31-0