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