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