9.4.32-3

Expensify/App9.4.32-3Jul 10, 2026by github-actions[bot]

AI Summary

Focuses on navigation stability, Certinia integration improvements, and continued refactoring of internal architecture.

Key Highlights

  • Fixed critical navigation bugs where forward/back buttons disappeared after submission
  • Enhanced Certinia integration with sandbox options and bundle link fixes
  • Improved Copilot switching discoverability with a dedicated button
  • Continued migration away from Onyx.connect() and refactoring of ReportActionsList
  • Fixed issues with missing DMs on fresh sign-in and offline tax rates

New Features

  • Copilot switching discoverability with dedicated button
  • Connect to Certinia Sandbox option
  • Schedule OOO end date picker with two-way duration sync

Full Release Notes

## What's Changed
* Pass ownerLogin as param to isViolationDismissed by @bernhardoj in https://github.com/Expensify/App/pull/95317
* Make single-select filter rows use compact 52px row height to match multi-select by @MelvinBot in https://github.com/Expensify/App/pull/94876
* [Payment due @DylanDylann] Exclude all-pending card reports from the Submit to-do by @ishpaul777 in https://github.com/Expensify/App/pull/95204
* Remove Onyx.connect() usage for ONYXKEYS.COLLECTION.POLICY_TAGS in requestMoney function from src/libs/actions/IOU/TrackExpense.ts by @Guccio163 in https://github.com/Expensify/App/pull/89084
* Forward/Back navigation buttons disappear after submitting a report by @lorretheboy in https://github.com/Expensify/App/pull/94928
* fix known DMs missing in recent chats on fresh sign-in by @apeyada in https://github.com/Expensify/App/pull/95454
* Replace getDisplayNameOrDefault with temporaryGetDisplayNameOrDefault - batch 7 by @cretadn22 in https://github.com/Expensify/App/pull/95420
* [No QA] Decompose Icon component by @jmusial in https://github.com/Expensify/App/pull/95048
* Update conciergeReportID to remove Onyx.connect - 28 by @cretadn22 in https://github.com/Expensify/App/pull/95066
* Fix: restore Wallet background for missing personal details RHP after reload by @MelvinBot in https://github.com/Expensify/App/pull/95363
* Audit react-navigation patches: remove redundant emoji patch, fix stale docs by @elirangoshen in https://github.com/Expensify/App/pull/94419
* [No QA] [Hold for feature] Docs updates for E/A#94207 document Permitted currencies in Card Spend Rules by @MelvinBot in https://github.com/Expensify/App/pull/95087
* [Payment due @daledah] [No QA] Report managed card transactions to employee's default policy by @s77rt in https://github.com/Expensify/App/pull/94768
* [NoQA] Cleanup functions that are being referenced in test only which escaped knip by @shubham1206agra in https://github.com/Expensify/App/pull/95419
* [Payment due @situchan] [No QA] Clear SW caches on web Update Required reload by @luacmartins in https://github.com/Expensify/App/pull/95438
* [No QA] Make reviewer checklist action tolerant of longer completed checklists by @kacper-mikolajczak in https://github.com/Expensify/App/pull/94161
* Fix Certinia setup step 1 bundle links not rendering on native by @ShridharGoel in https://github.com/Expensify/App/pull/94856
* Fix: keep offline-deleted tax rates visible in default currency tax picker by @MelvinBot in https://github.com/Expensify/App/pull/95413
* Fixed money request optimistic violations by @mukhrr in https://github.com/Expensify/App/pull/94105
* Make Copilot switching discoverable with a dedicated Switch button on the Accounts page by @wildan-m in https://github.com/Expensify/App/pull/93393
* Fix: copy only the selected text for system messages by @MelvinBot in https://github.com/Expensify/App/pull/95517
* fix: resolve distance expense creation error in DM after clearing cache by @nabi-ebrahimi in https://github.com/Expensify/App/pull/92755
* Collect legal entity tax ID before enabling Travel on non-USD workspaces by @blimpich in https://github.com/Expensify/App/pull/94604
* [Payment due @Ollyws] Add never value to withdrawal-status search filter by @ShridharGoel in https://github.com/Expensify/App/pull/93895
* Pass reportActions as param to shouldShowReportActionNotification by @bernhardoj in https://github.com/Expensify/App/pull/95318
* [CP Staging] Add payer admin logic for manual reimbursement payers  by @NikkiWines in https://github.com/Expensify/App/pull/95547
* [NoQA] Optimize CardUtils card filtering to avoid copying large card lists by @VickyStash in https://github.com/Expensify/App/pull/95272
* Filter disabled report field values out of the Recent section by @MelvinBot in https://github.com/Expensify/App/pull/94764
* [Home Page] Update the "Getting started" slot for the `Track expenses for my business` intent by @adamgrzybowski in https://github.com/Expensify/App/pull/95057
* [No QA] - Fix cold lint after deprecating icons sizing by @jmusial in https://github.com/Expensify/App/pull/95606
* Replace getDisplayNameOrDefault with temporaryGetDisplayNameOrDefault - batch 6 by @cretadn22 in https://github.com/Expensify/App/pull/95415
* Fix "Let's go" migrate welcome button redirects to Inbox instead of Spend page after completing the demo by @jmusial in https://github.com/Expensify/App/pull/95399
* Bump Onyx to 3.0.89 by @fabioh8010 in https://github.com/Expensify/App/pull/93436
* Migrate AvatarCropModal to @react-navigation modal screen by @borys3kk in https://github.com/Expensify/App/pull/93926
* Refactor getSubmitToEmail and getSubmitToAccountID by @bernhardoj in https://github.com/Expensify/App/pull/95458
* [NoQA] fix: recover stuck isLoadingApp that blocks Inbox and Workspaces by @BartekObudzinski in https://github.com/Expensify/App/pull/95569
* [No QA] Fix leader-election deadlock in ActiveClientManager (SequentialQueue unable to flush) by @elirangoshen in https://github.com/Expensify/App/pull/95148
* [Internal QA] Fix duplicate company cards showing up by @JS00001 in https://github.com/Expensify/App/pull/95611
* Coalesce OnyxDerived recomputations via macrotask scheduling by @fabioh8010 in https://github.com/Expensify/App/pull/95287
* [No QA] Coalesce OnyxDerived recomputations via macrotask scheduling by @sosek108 in https://github.com/Expensify/App/pull/94574
* Adjust to use dedicated RevealExpensifyTravelCardDetails command by @heekinho in https://github.com/Expensify/App/pull/95514
* [CP Staging] Fix overlap styles for table filter bar by @JS00001 in https://github.com/Expensify/App/pull/95632
* Only read foreground location permissions without requesting them at the beginning by @DylanDylann in https://github.com/Expensify/App/pull/95372
* [Payment due @FitseTLT] Add end date picker with two-way duration sync on Schedule OOO by @stitesExpensify in https://github.com/Expensify/App/pull/94314
* [CP Staging] Fix: disable Expand button for offline-edited distance receipts with stale map by @MelvinBot in https://github.com/Expensify/App/pull/95563
* [No QA] Add VPAT to Compliance Documentation by @rushatgabhane in https://github.com/Expensify/App/pull/95510
* Restore Wallet and other Account sections for agent accounts by @NicolasBonet in https://github.com/Expensify/App/pull/95421
* Add Connect to Certinia Sandbox option by @ShridharGoel in https://github.com/Expensify/App/pull/95113
* [Bulk workspace edits] Release 2: remove Control-only restriction + Upgrade page by @fedirjh in https://github.com/Expensify/App/pull/94060
* Fix distance request deeplink redirect by @emkhalid in https://github.com/Expensify/App/pull/95436
* [No QA] Reduce unsafe type assertions in navigation tests by @KJ21-ENG in https://github.com/Expensify/App/pull/95646
* [No QA] Reduce unsafe type assertions in checkFileExists, qbo/utils, parseAndCollectJSONs, and useLastWorkspaceNumber tests by @KJ21-ENG in https://github.com/Expensify/App/pull/95641
* Prevent empty values for mandatory fields in CSV Card Import by @Gonals in https://github.com/Expensify/App/pull/95488
* [No QA] Reduce unsafe type assertions in search, hook, and mention tests by @KJ21-ENG in https://github.com/Expensify/App/pull/95643
* [Payment due @ahmedGaber93] [No QA] Docs updates for E/A#94511 attendee columns sortable in report view by @MelvinBot in https://github.com/Expensify/App/pull/95295
* Show pending BYOC transactions in NewDot by @daledah in https://github.com/Expensify/App/pull/91231
* [No QA] Update help docs for Release 1: global HR import (Workday, HiBob, BambooHR) by @MelvinBot in https://github.com/Expensify/App/pull/95474
* [No QA]  Update help docs for Release 1: Date-based mileage rates by @MelvinBot in https://github.com/Expensify/App/pull/94257
* [No QA] Fix stale pending-transaction submit tests broken on main by @amyevans in https://github.com/Expensify/App/pull/95654
* [No QA] update previousTaxCode in setPolicyTaxCode successData by @dukenv0307 in https://github.com/Expensify/App/pull/94286
* Open linked message at top - 3 by @VickyStash in https://github.com/Expensify/App/pull/95045
* [No QA] Automate PR checklist batch 2: callback naming, prop docs, file headers by @kacper-mikolajczak in https://github.com/Expensify/App/pull/95546
* fix: onboarding back button redirects to blank modal for private-domain VSB/SMB by @dilshodmackbook-sketch in https://github.com/Expensify/App/pull/95001
* [NoQA] Revert onyx bump by @mountiny in https://github.com/Expensify/App/pull/95665
* [CP Both] Revert "[Onyx bump] Bump react-native-onyx from 3.0.86 to 3.0.88" by @mountiny in https://github.com/Expensify/App/pull/95668
* [NO QA] Match letter avatar initials size to the generated avatar images by @grgia in https://github.com/Expensify/App/pull/95639
* Remove Onyx.connect() usage for ONYXKEYS.COLLECTION.POLICY_TAGS in handleMoneyRequestStepDistanceNavigation function from src/pages/iou/request/step/IOURequestStepDistance/handleMoneyRequestStepDistanceNavigation.ts by @Guccio163 in https://github.com/Expensify/App/pull/94300


**Full Changelog**: https://github.com/Expensify/App/compare/9.4.31-0...9.4.32-3