9.4.74-2
Expensify/App9.4.74-2Sep 9, 2026by roryabraham
Full Release Notes
## What's Changed * fix: disable report preview Submit button when strict workflow rules block submission by @kamronbek04 in https://github.com/Expensify/App/pull/97946 * Finish typography token migration: alias remaining text styles, drop fontSizeH1, close the lint escape hatch by @MelvinBot in https://github.com/Expensify/App/pull/100444 * [CP Staging] [No QA] Stop downloading react-native dSYMs in the deploy iOS build by @mountiny in https://github.com/Expensify/App/pull/100507 * fix: make agent-device replays fail safely by @BartekObudzinski in https://github.com/Expensify/App/pull/97555 * Fix landscape mode layout on Agents pages by @GCyganek in https://github.com/Expensify/App/pull/97782 * [CP Staging] Revert "Fix: prevent dynamic route crash when "action" query param exists in both base path and suffix" by @mountiny in https://github.com/Expensify/App/pull/100514 * Keep copilot receipts loading and stop 2-hour expiry check from endin… by @emkhalid in https://github.com/Expensify/App/pull/98893 * [CP Staging] Hide Merge Reports functionality behind beta by @Gonals in https://github.com/Expensify/App/pull/100523 * Floor lineHeightXSmall at 11 so small device font scales don't clip descenders and link underlines by @MelvinBot in https://github.com/Expensify/App/pull/100448 * Refactor: migrate convertToDisplayString to useCurrencyListActions hook (part 20) by @shubham1206agra in https://github.com/Expensify/App/pull/100201 * Remove the HTTP PusherPing heartbeat by @adhorodyski in https://github.com/Expensify/App/pull/100296 * Fix duplicate distance rates after copying workspace settings by @neil-marcellini in https://github.com/Expensify/App/pull/99678 * Duplicate GPS distance expenses as manual distance by @x-dev90 in https://github.com/Expensify/App/pull/98189 * Fix cropped map after editing odometer in Distance flow by @x-dev90 in https://github.com/Expensify/App/pull/96560 * [Payment due @getusha] Add bank statement and ssn requirements by @madmax330 in https://github.com/Expensify/App/pull/98500 * [Home Page] Clean up Home's For you and Time sensitive sections by combining them by @adamgrzybowski in https://github.com/Expensify/App/pull/100323 * [No QA] Update ProposalPolice handling of proposal updates by @roryabraham in https://github.com/Expensify/App/pull/99467 * refactor: remove unsafe TextInputWithSymbol assertions by @KJ21-ENG in https://github.com/Expensify/App/pull/98837 * refactor: remove unsafe AgreementsFullStep assertions by @KJ21-ENG in https://github.com/Expensify/App/pull/98842 * [No QA] Add `CONSISTENCY-19` - prop comment must add information rule by @JakubKorytko in https://github.com/Expensify/App/pull/99906 * fix: remove unsafe assertions from receipt and settings flows by @KJ21-ENG in https://github.com/Expensify/App/pull/98847 * Vertically center the condensed badge count in the LHN tab pill by @MelvinBot in https://github.com/Expensify/App/pull/100443 * [No QA] Fix import/no-cycle - part 3 by @LukasMod in https://github.com/Expensify/App/pull/99910 * [No QA] Expand integrationIcons render-array into explicit JSX in ExportedIconCell by @MelvinBot in https://github.com/Expensify/App/pull/100262 * [No QA] Fix import/no-cycle - part 4 by @LukasMod in https://github.com/Expensify/App/pull/100028 * [No QA] ci: ignore test calls in Onyx review workflow by @tgolen in https://github.com/Expensify/App/pull/100525 * [No QA] Rebuild lint seatbelt pipeline outside ESLint by @roryabraham in https://github.com/Expensify/App/pull/99259 * Navigate to the clicked expense in a multi-expense report preview (v2) by @wildan-m in https://github.com/Expensify/App/pull/97308 * [No QA] Update help docs for Release 1: Violations by submitter by @MelvinBot in https://github.com/Expensify/App/pull/99296 * [Merge ATS] Build the Recruiting page, provider card, and navigation by @bernhardoj in https://github.com/Expensify/App/pull/100136 * perf: remove Promise.all gate before scan-to-confirmation navigation by @OlimpiaZurek in https://github.com/Expensify/App/pull/99430 * [No QA] Docs updates for E/A#99201 Unique ID mapping for company card CSV import by @MelvinBot in https://github.com/Expensify/App/pull/99797 * Resolve reports snapshot-first in Search bulk Delete and Reject by @VickyStash in https://github.com/Expensify/App/pull/99047 * Split the confirmation footer by variants pt2 by @VickyStash in https://github.com/Expensify/App/pull/100041 * fix: Tax - No autofocus in the name editing menu taxes by @TaduJR in https://github.com/Expensify/App/pull/99757 * Treat an in-flight reconnect as covering the gap it is already fetching by @adhorodyski in https://github.com/Expensify/App/pull/100320 * Show the auto-approval limit notice on the expense preview by @KioCoan in https://github.com/Expensify/App/pull/99796 * fix (batch 5): isNewManualExpenseFlowEnabled beta flag regressions by @thelullabyy in https://github.com/Expensify/App/pull/99947 * Claim `/oauth/native-callback` as an iOS universal link by @JakubKorytko in https://github.com/Expensify/App/pull/100393 * fix: Restore all matching items selected label by @emkhalid in https://github.com/Expensify/App/pull/99579 * Remove getPersonalDetailByEmail from buildPolicyData and getDisplayNameForWorkspace by @bernhardoj in https://github.com/Expensify/App/pull/99652 * Part 3 - Audit usage of Str.removeSMSDomain by @FitseTLT in https://github.com/Expensify/App/pull/100056 * Add "Reconciliation - All Expenses" export option for NewDot by @dukenv0307 in https://github.com/Expensify/App/pull/99309 * Replace getPersonalDetailByEmail with usePersonalDetailByLogin for join request and modified expense actions by @bernhardoj in https://github.com/Expensify/App/pull/98894 * Fix receipt full-res image not loading when preview displaces it in flow by @neerajbachani in https://github.com/Expensify/App/pull/100423 * [No QA] Consolidate TypeScript projects under a root project with subproject references by @roryabraham in https://github.com/Expensify/App/pull/100553 * [No QA][Onyx bump] Bump react-native-onyx from 3.0.109 to 3.0.110 by @sosek108 in https://github.com/Expensify/App/pull/100385 * [No QA] Add Travel Groups and Roles documentation by @strepanier03 in https://github.com/Expensify/App/pull/99005 * fix: Navigation bar translucency on Android by @chrispader in https://github.com/Expensify/App/pull/87810 * refactor: remove isDraftReport and require isDraftChatReport in the track-expense flow by @daledah in https://github.com/Expensify/App/pull/98960 * [No QA] Create Manage-Vendor-Matching-for-Xero.md by @stephanieelliott in https://github.com/Expensify/App/pull/100458 * Clarify Approval Options When Held Expenses Exist And Fix Regressions by @mkzie2 in https://github.com/Expensify/App/pull/83667 * Show a specific error when adding a domain-controlled work email during onboarding by @MelvinBot in https://github.com/Expensify/App/pull/99108 ## New Contributors * @kamronbek04 made their first contribution in https://github.com/Expensify/App/pull/97946 **Full Changelog**: https://github.com/Expensify/App/compare/9.4.73-3...9.4.74-2