9.4.54-4

Expensify/App9.4.54-4Aug 18, 2026by github-actions[bot]

AI Summary

This release adds Active/Archived filter sections to the Spend workspace and improves page load performance (INP). It also brings back the Top merchants insight and fixes various UI and rule-related bugs.

Key Highlights

  • [Release 3] feat: Active/Archived sections + Select all in Spend workspace filter
  • [INP] Improve UserListItem-Checkbox INP: paint the checkmark optimistically
  • Fix: Expense Rules Without Reimbursable/Billable in Classic Default to 'No' in New Expensify
  • Bring back Top merchants insight to the Home page
  • Fix incorrect currency symbol in distance rate update changelog message

New Features

  • Add Active/Archived sections + Select all in Spend workspace filter
  • Bring back Top merchants insight to the Home page

Full Release Notes

## What's Changed
* Fix: Expense Rules Without Reimbursable/Billable in Classic Default to “No” in New Expensify by @twilight2294 in https://github.com/Expensify/App/pull/97522
* Update conciergeReportID to remove Onyx.connect - 34 by @cretadn22 in https://github.com/Expensify/App/pull/97822
* Keep merchant rules import button active offline for the all-skipped path by @MelvinBot in https://github.com/Expensify/App/pull/96976
* [INP] Improve UserListItem-Checkbox INP: paint the checkmark optimistically and run the selection update as a transition by @dilshodmackbook-sketch in https://github.com/Expensify/App/pull/97140
* Fix: show receipt thumbnail on Expenses tab when receipt has a file but no scan state by @MelvinBot in https://github.com/Expensify/App/pull/97687
* Remove onboarding progress bar by @MelvinBot in https://github.com/Expensify/App/pull/97590
* [NO QA] Scope agent-device text-input macros per platform by @kacper-mikolajczak in https://github.com/Expensify/App/pull/98272
* [No QA] Remove unsafe type assertions from tests by @KJ21-ENG in https://github.com/Expensify/App/pull/97286
* [No QA] Remove unsafe type assertions from policy, workflow, navigation, and utility tests by @KJ21-ENG in https://github.com/Expensify/App/pull/97317
* Fix Android device back button on the public room sign-in modal by @ahmdshrif in https://github.com/Expensify/App/pull/98401
* Name the required deposit currency in the waiting-for-submitter-account next step by @ShridharGoel in https://github.com/Expensify/App/pull/94786
* [No QA] Fix typecheck and test failures from PR #94786 by @luacmartins in https://github.com/Expensify/App/pull/98512
* [CP Stg] Fix category change log thread header to match the system message by @roryabraham in https://github.com/Expensify/App/pull/98495
* Rewrite default custom agent prompt as a personal copilot example by @yuwenmemon in https://github.com/Expensify/App/pull/98508
* [No QA] Cleanup CLAUDE.md by @roryabraham in https://github.com/Expensify/App/pull/98514
* [Payment due @mkhutornyi] Add policy change logs for the categorize and tag requirements by @rayane-d in https://github.com/Expensify/App/pull/97505
* 83858 migrate category v3 by @huult in https://github.com/Expensify/App/pull/97524
* [CP Staging] Revert "fix: stop Search re-firing an identical query on unrelated Onyx updates" by @mountiny in https://github.com/Expensify/App/pull/98548
* [CP Stg] Patch RN 0.86 to fix Fabric reusing nodes with a stale font scale by @roryabraham in https://github.com/Expensify/App/pull/98507
* [CP Staging] Remove unnecessary delayed image loading by @bernhardoj in https://github.com/Expensify/App/pull/98568
* Fix: patch react-native-vision-camera to avoid AVCaptureSession configuration crash by @sharabai in https://github.com/Expensify/App/pull/97499
* [Search Router] Add Create actions to navigation suggestions by @nabi-ebrahimi in https://github.com/Expensify/App/pull/97086
* Migrate Button to ButtonComposed (batch 8) by @mikolajpochec in https://github.com/Expensify/App/pull/97089
* Fix receipts dropping after iOS app upgrade due to stale container paths by @adhorodyski in https://github.com/Expensify/App/pull/97814
* Fix: Multi-level tags show "Required" on all levels when only some are required by @MelvinBot in https://github.com/Expensify/App/pull/98247
* Take the user into the Concierge thread after asking a question by @rushatgabhane in https://github.com/Expensify/App/pull/97816
* [No QA] Fix flaky SignInBackButtonTest caused by the openApp Onyx race by @mountiny in https://github.com/Expensify/App/pull/98586
* Clear expense report hasOutstandingChildRequest optimistically on approve by @MelvinBot in https://github.com/Expensify/App/pull/95636
* [CP Staging] Spend - Canadian multiple tax export is not shown if an expense was previously deleted. by @dukenv0307 in https://github.com/Expensify/App/pull/98526
* [NoQA] Add logging for silent exits in Search page pay flows by @VickyStash in https://github.com/Expensify/App/pull/98597
* [CP staging] Expense-Canadian Multiple Tax Export option is missing for expenses in archived CAD workspace by @dukenv0307 in https://github.com/Expensify/App/pull/98545
* Persist reimbursable selection on optimistic CSV import card by @MelvinBot in https://github.com/Expensify/App/pull/98486
* [No QA] Replace softprops/turnstyle with GitHub-native concurrency in createNewVersion by @roryabraham in https://github.com/Expensify/App/pull/98458
* [No QA] MenuItem decomposition - simplest usages by @war-in in https://github.com/Expensify/App/pull/97339
* Preserve custom report name when duplicating a report and editing expenses by @MelvinBot in https://github.com/Expensify/App/pull/98387
* Filter DELETE-pending transactions out of LHN RBR aggregation by @dilshodmackbook-sketch in https://github.com/Expensify/App/pull/97706
* [No QA] Clean up unsafe assertions in unit tests by @KJ21-ENG in https://github.com/Expensify/App/pull/98453
* [No QA] Remove unsafe type assertions from unit tests by @KJ21-ENG in https://github.com/Expensify/App/pull/98447
* [No QA] Clean up unsafe type assertions in UI tests by @KJ21-ENG in https://github.com/Expensify/App/pull/98436
* [No QA] Remove unsafe type assertions from tests by @KJ21-ENG in https://github.com/Expensify/App/pull/98431
* [No QA] Remove unsafe type assertions from UI tests by @KJ21-ENG in https://github.com/Expensify/App/pull/98415
* [No QA] Remove unsafe type assertions from tests by @KJ21-ENG in https://github.com/Expensify/App/pull/98116
* [No QA] Remove unsafe type assertions from tests by @KJ21-ENG in https://github.com/Expensify/App/pull/98111
* [No QA] Remove unsafe type assertions from tests by @KJ21-ENG in https://github.com/Expensify/App/pull/97676
* [No QA] Remove unsafe type assertions from tests by @KJ21-ENG in https://github.com/Expensify/App/pull/97509
* Fix incorrect currency symbol in distance rate update changelog message by @mukhrr in https://github.com/Expensify/App/pull/98389
* [Payment due @huult] [NO QA] Add Amount debited and Amount reimbursed filters, columns and sorting by @ishpaul777 in https://github.com/Expensify/App/pull/97708
* [No QA] Remove unsafe type assertions from unit tests by @KJ21-ENG in https://github.com/Expensify/App/pull/98428
* Keep the time picker's AM/PM period locale-independent by @mukhrr in https://github.com/Expensify/App/pull/98110
* Bring back Top merchants insight to the Home page by @mhawryluk in https://github.com/Expensify/App/pull/98557
* Clean up page header styles and remove header illustrations by @shawnborton in https://github.com/Expensify/App/pull/98461
* [Payment due @ZhenjaHorbach] Render DELEGATESUBMIT report action as muted system message by @luacmartins in https://github.com/Expensify/App/pull/96766
* Re-add Rotate and Crop buttons for stitched odometer receipt images by @MelvinBot in https://github.com/Expensify/App/pull/98540
* [Payment due @situchan] Refactor BusinessInfo PhoneNumberBusiness loader to ActivityIndicator by @MelvinBot in https://github.com/Expensify/App/pull/96832
* Turn native startup markers into ManualAppStartup child spans (iOS startup p90 instrumentation) by @elirangoshen in https://github.com/Expensify/App/pull/97565
* Refactor Account settings menu data into a shared hook by @nabi-ebrahimi in https://github.com/Expensify/App/pull/96870
* Video orientation changes after editing a message by @nkdengineer in https://github.com/Expensify/App/pull/97174
* Fix Distance badge overlaps with one another by @GCyganek in https://github.com/Expensify/App/pull/98572
* [No QA] Fix unsafe type assertions in unit tests by @KJ21-ENG in https://github.com/Expensify/App/pull/98452
* [No QA] Remove unsafe type assertions from tests by @KJ21-ENG in https://github.com/Expensify/App/pull/98533
* Show Edit comment for text and attachment messages while the attachment uploads by @mukhrr in https://github.com/Expensify/App/pull/97935
* Surface over-limit error when moving an expense to a report at the 500-transaction limit by @MelvinBot in https://github.com/Expensify/App/pull/97998
* [Payment due @situchan] Refactor BusinessInfo IncorporationStateBusiness loader to ActivityIndicator by @MelvinBot in https://github.com/Expensify/App/pull/96831
* Fix flash of disabled feature page before redirect to More features by @MelvinBot in https://github.com/Expensify/App/pull/98549
* Name assigned company card after the selected employee, not the admin by @MelvinBot in https://github.com/Expensify/App/pull/97925
* fix super wide RHP closing after merging an expense on Search by @apeyada in https://github.com/Expensify/App/pull/96910
* Fix Global Reimbursement incorrectly appearing disabled for fully set-up US Corpay accounts by @MelvinBot in https://github.com/Expensify/App/pull/98347
* [NO QA] Use correct melvin actor to ignore checklist by @rlinoz in https://github.com/Expensify/App/pull/98642
* [No QA] Update help docs for Release 3: Submit via PDF for the Submit workspace by @MelvinBot in https://github.com/Expensify/App/pull/98295
* [No QA] Migrate GitHub Actions and scripts tests from Jest to bun:test by @roryabraham in https://github.com/Expensify/App/pull/98402
* Resume add-card flow after acknowledging company cards upgrade by @MelvinBot in https://github.com/Expensify/App/pull/97937
* fix: show scan error instead of populating $0 amount when scan fails by @x-dev90 in https://github.com/Expensify/App/pull/96772
* [Release 3] feat: Active/Archived sections + Select all in Spend workspace filter by @truph01 in https://github.com/Expensify/App/pull/97773
* Convert Workflows page to a tabbed layout behind the rulesRevamp beta by @Krishna2323 in https://github.com/Expensify/App/pull/98004
* getPolicyTags cleanup by @Guccio163 in https://github.com/Expensify/App/pull/98400
* [No QA] Remove unsafe type assertions from UI tests by @KJ21-ENG in https://github.com/Expensify/App/pull/98440
* Fix keyboard focus not returning to FAB and composer + after Back by @Krishna2323 in https://github.com/Expensify/App/pull/97678
* [No QA] Remove unsafe type assertions from ten test files by @KJ21-ENG in https://github.com/Expensify/App/pull/97285
* [No QA] Remove unsafe assertions from shared test utilities by @KJ21-ENG in https://github.com/Expensify/App/pull/98485
* Limit displayed Exchange Rate values to 4 decimals in expense tables by @MelvinBot in https://github.com/Expensify/App/pull/98620
* fix: reland Search re-fire fix with the deploy blocker regressions closed by @BartekObudzinski in https://github.com/Expensify/App/pull/98558
* [CP Staging] fix iOS 2FA blank screen is displayed after enabling 2FA bug by @jakubstec in https://github.com/Expensify/App/pull/98604
* Patch Search snapshot when submitting a tracked expense (offline Spend > Expenses) by @MelvinBot in https://github.com/Expensify/App/pull/97618
* [NoQA] Add spans for app-startup network request phases by @TMisiukiewicz in https://github.com/Expensify/App/pull/98413
* [Payment due @Ollyws] Do not show onboarding options in concierge for submit2026 workspaces by @iwiznia in https://github.com/Expensify/App/pull/98470
* Drop the vendorMatching beta gate from QBO vendor surfaces (R1 GA) by @KioCoan in https://github.com/Expensify/App/pull/98516
* Fix: return focus and soft keyboard to description input on iOS after canceling discard modal by @MelvinBot in https://github.com/Expensify/App/pull/97823
* [Payment due @ZhenjaHorbach] [No QA] Log the two unreproducible hangs from Expensify/Expensify#667674 by @mjasikowski in https://github.com/Expensify/App/pull/98279
* Guard FlashList ViewHolderCollection render against stale layout index (web crash) by @MelvinBot in https://github.com/Expensify/App/pull/98015
* [CP Staging] fix Expense - Per diem expense receipt loads infinitely after reset app by @mkhutornyi in https://github.com/Expensify/App/pull/98668
* Surface Expensify Card monthly settlement date on card settings page by @MelvinBot in https://github.com/Expensify/App/pull/98164
* [No QA] Fix main typecheck: add required email to QBO vendor mock by @mountiny in https://github.com/Expensify/App/pull/98670
* Center Home page contents on wider screens by @shawnborton in https://github.com/Expensify/App/pull/98449
* Migrate Button to ButtonComposed (batch 5) search+reports by @mikolajpochec in https://github.com/Expensify/App/pull/97336
* fix: Home - Extra padding is shown in More menu in offline mode by @mhawryluk in https://github.com/Expensify/App/pull/98290
* [NO QA][HOME] Replace right caret with new window icon on announcements row by @MelvinBot in https://github.com/Expensify/App/pull/98435
* Expense -Deleted split moved from 1:1 chat to Self DM with negative amount after clear cache by @lorretheboy in https://github.com/Expensify/App/pull/97645
* 🍒 Cherry pick PR #98790 to staging 🍒 by @os-botify[bot] in https://github.com/Expensify/App/pull/98804


**Full Changelog**: https://github.com/Expensify/App/compare/9.4.53-10...9.4.54-4