Releases: Expensify/App
Releases · Expensify/App
9.4.21-9-staging
Full Changelog: 9.4.21-8-staging...9.4.21-9-staging
9.4.21-8-staging
Full Changelog: 9.4.21-7-staging...9.4.21-8-staging
9.4.21-7-staging
Full Changelog: 9.4.21-6-staging...9.4.21-7-staging
9.4.21-6-staging
Full Changelog: 9.4.21-5-staging...9.4.21-6-staging
9.4.21-5-staging
Full Changelog: 9.4.21-2-staging...9.4.21-5-staging
9.4.21-2-staging
What's Changed
- [No QA] Fix missing submitterLogin in ReportWorkflowTest by @roryabraham in #94630
- fix: prevent "Something went wrong" screen flash on failed spend query by @nabi-ebrahimi in #93752
- Fix report preview approval policy flow by @KJ21-ENG in #93876
- [No QA] Update approval types and backup approver details by @Christinadobrzyn in #94350
- [No QA] Cleanup unused CONST fields by @shubham1206agra in #93951
- [NO QA] Reduce unsafe type assertions in tests via createMock (batch 2) by @blimpich in #94623
- Allow negative response to be reprompted after 30 days by @hungvu193 in #94163
- [No QA] Remove feature training modal dead code by @jmusial in #94599
- Migrate useSearchSelector.base.ts from useOptionsList to usePersonalDetailOptions (part 5) by @hoangzinh in #94179
- [Performance] Resolve
destinationReportIDbefore confirmation mount in global-create by @JakubKorytko in #94459 - [Payment due @mkhutornyi] Fix thread RHP not closing when parent message deleted from search pages by @WojtekBoman in #94293
- Enhance getChatRoomSubtitle function to accept conciergeReportID by @cretadn22 in #93547
- Fix #admin room visibility in LHN for Track Workspace onboarding by @emkhalid in #94104
- Migrate domain members list to the new Table component by @Krishna2323 in #94445
- [Home Page] Remove Getting started slot from Home whenever all onboarding to-dos are complete by @adamgrzybowski in #94047
- Add one-click copy button to code blocks in chat by @MelvinBot in #94337
- [cp staging] Fix Expense defaults tab crash from unstable selectedKeys. by @Krishna2323 in #94695
- [NO QA] Surface Travel provisioning errors on the terms screen instead of failing silently by @blimpich in #94074
- [Onyx bump] Bump react-native-onyx from 3.0.85 to 3.0.86 by @elirangoshen in #94449
- Open linked message at top - 2 by @VickyStash in #94671
- Fix tax amount input overwriting in-progress edits in new manual expense flow by @MelvinBot in #94538
- Fix Y axis labels being cut off when intermediate values are longer than min and max by @mhawryluk in #93817
- Refactor: flash list dom order improvement for simple lists by @sharabai in #91605
- [Payment due @daledah] Add receipt-type filter on the Search (Spend) page by @allgandalf in #94129
- Update the policy expensify card table to the new style by @luacmartins in #93861
- [No QA] Rename Travel Invoicing to Consolidated Travel Billing (NewDot copy + help docs) by @blimpich in #94626
- Delay FreezeWrapper freezing while a modal is still open by @emkhalid in #94597
- Remove code that explicitly pushed to MFA outcome screens by @chuckdries in #94103
- Fix: preserve iouType for invoice/pay when reselecting a participant on confirm page by @MelvinBot in #94536
- Fix: referral banner appears behind Android navigation bar in manual expense flow by @MelvinBot in #94539
- [No QA] Treat existing release as success in deploy create-release retry loop by @blimpich in #94213
Full Changelog: 9.4.20-0-staging...9.4.21-2-staging
9.4.20-1
What's Changed
- Hide Print secondary action for reports in the Open state by @wildan-m in #92885
- Update the workspace members table to the new style by @JS00001 in #91746
- Remap shortcuts for opening policy and report by @iwiznia in #94155
- Fix: keep input focus by dismissing keyboard only when IOU type actually changes by @MelvinBot in #94412
- [No QA] Create Find-Rooms-in-a-Workspace.md by @stephanieelliott in #93992
- Guard DeepLinkHandler against stale post-sign-out initial URL by @MobileMage in #92839
- Rename onboarding task copy from "Submit an expense" to "Create an expense" by @MelvinBot in #93961
- feat: Integrate ExportDownloadStatusModal into report-level CSV export flow by @truph01 in #93796
- Show complete Certinia bundle instructions by @ShridharGoel in #94414
- [No QA] Fix flaky NewChatPage test by @MonilBhavsar in #94475
- [Payment due @daledah] [No QA] Explicitly opt out from backups on iOS by @mateuuszzzzz in #93586
- [Part 1] Onyx.connect removal for CurrencyUtils by @ShridharGoel in #83804
- Remove Tags page header max width by @luacmartins in #94516
- perf: Search S5 ExpenseFlatSearchView + primitives by @BartekObudzinski in #94426
- fix: show contact names instead of phone numbers in imported contact lists by @aswin-s in #91395
- [CP Staging] Fix independent tags not sorting by name by @luacmartins in #94509
- [CP Staging] Revert #93402 - 83858 migrate money request part 3 v2 by @mjasikowski in #94555
- Keep focus on distance field on error by @Gonals in #94566
- [CP Staging] Revert "Add currency selector to Search footer total spend" by @mountiny in #94562
- [Payment due @marufsharifi] Honor the selected bank account when paying an expense report from the report preview by @KioCoan in #93110
- Show work-email warning before legal-name step for personal-email travel users by @MelvinBot in #94529
- Fix: Video - Video is not playing in full screen, no controls, app is unresponsive by @annaweber830 in #82324
- Remove Onyx.connect() for the RAM_ONLY_ARE_TRANSLATIONS_LOADING key part 1 by @daledah in #91996
- Fix money request not found RHP fallback by @KJ21-ENG in #93875
- fix: KYC flow doesn't trigger after adding bank account when paying another user by @samranahm in #92154
- [No QA] Cancel ManualOpenSearchRouter telemetry span when the search router is closed by @jakubkalinski0 in #94472
- Soft-log missing ViewState in addViewAt to fix Fabric mount crash by @lorretheboy in #94095
- Replace getDisplayNameOrDefault with temporaryGetDisplayNameOrDefault by @cretadn22 in #94302
- Prevent loading older chats while hidden history is shown by @VickyStash in #94444
- Collapse in-flight reconnects by coverage to close the SequentialQueue dedup gap by @adhorodyski in #94210
- Remove getLoginByAccountID usages from getSubmitReportManagerAccountID and prepareRejectMoneyRequestData by @bernhardoj in #92629
- [No QA] Add web crash diagnostics to detect abnormal browser session exits by @sosek108 in #94201
- [NO QA] Reduce unsafe type assertions in tests via createMock helper by @blimpich in #92979
- Rework search input to be a keyword search only by @bernhardoj in #93543
- Fix regressions from [Rules Revamp] Release 1 by @Krishna2323 in #94478
- [Payment due @bernhardoj] Update Home announcements widget with June 2026 product update by @MelvinBot in #94502
- Part 3: Refactor ConfirmModal usage to useConfirmModal in workspace accounting and general pages by @thelullabyy in #93633
- [CP Staging] Fix tag selection mode on RHP by @luacmartins in #94600
- [GPS] Add custom compass to GPSMapView by @GCyganek in #94284
- [CBN] Refactor EnablePayments flow by @VickyStash in #92779
- Show date change in system message when a distance date edit also changes the rate by @c3024 in #94556
- Move from a boolean flag to a timestamp for ResendValidateCode gate by @chuckdries in #93301
- [Payment due @brunovjk] Surface RuleBot in the Agent rules section by @yuwenmemon in #94131
- Android & iOS - Expense - Description field is not visible when focused by @thelullabyy in #94398
- Fix Spend tab flash when backing out of manual expense from Workspaces tab by @MelvinBot in #94515
- Fix duplicate "This field is required" error on manual expense confirmation by @MelvinBot in #94513
- Migrate InteractionManager - batch 3 part 3 by @mrejdak in #94040
- fix: report unread by @annaweber830 in #91940
- Block submitter self-approval Approve badge on Submit workspaces by @MelvinBot in #94553
- [No QA] Move sentry size analysis upload to deploy step by @rinej in #94039
Full Changelog: 9.4.19-5...9.4.20-1
9.4.20-1-staging
Full Changelog: 9.4.20-0-staging...9.4.20-1-staging
9.4.20-0-staging
What's Changed
- Hide Print secondary action for reports in the Open state by @wildan-m in #92885
- Update the workspace members table to the new style by @JS00001 in #91746
- Remap shortcuts for opening policy and report by @iwiznia in #94155
- Fix: keep input focus by dismissing keyboard only when IOU type actually changes by @MelvinBot in #94412
- [No QA] Create Find-Rooms-in-a-Workspace.md by @stephanieelliott in #93992
- Guard DeepLinkHandler against stale post-sign-out initial URL by @MobileMage in #92839
- Rename onboarding task copy from "Submit an expense" to "Create an expense" by @MelvinBot in #93961
- feat: Integrate ExportDownloadStatusModal into report-level CSV export flow by @truph01 in #93796
- Show complete Certinia bundle instructions by @ShridharGoel in #94414
- [No QA] Fix flaky NewChatPage test by @MonilBhavsar in #94475
- [Payment due @daledah] [No QA] Explicitly opt out from backups on iOS by @mateuuszzzzz in #93586
- [Part 1] Onyx.connect removal for CurrencyUtils by @ShridharGoel in #83804
- Remove Tags page header max width by @luacmartins in #94516
- perf: Search S5 ExpenseFlatSearchView + primitives by @BartekObudzinski in #94426
- fix: show contact names instead of phone numbers in imported contact lists by @aswin-s in #91395
- [CP Staging] Fix independent tags not sorting by name by @luacmartins in #94509
- [CP Staging] Revert #93402 - 83858 migrate money request part 3 v2 by @mjasikowski in #94555
- Keep focus on distance field on error by @Gonals in #94566
- [CP Staging] Revert "Add currency selector to Search footer total spend" by @mountiny in #94562
- [Payment due @marufsharifi] Honor the selected bank account when paying an expense report from the report preview by @KioCoan in #93110
- Show work-email warning before legal-name step for personal-email travel users by @MelvinBot in #94529
- Fix: Video - Video is not playing in full screen, no controls, app is unresponsive by @annaweber830 in #82324
- Remove Onyx.connect() for the RAM_ONLY_ARE_TRANSLATIONS_LOADING key part 1 by @daledah in #91996
- Fix money request not found RHP fallback by @KJ21-ENG in #93875
- fix: KYC flow doesn't trigger after adding bank account when paying another user by @samranahm in #92154
- [No QA] Cancel ManualOpenSearchRouter telemetry span when the search router is closed by @jakubkalinski0 in #94472
- Soft-log missing ViewState in addViewAt to fix Fabric mount crash by @lorretheboy in #94095
- Replace getDisplayNameOrDefault with temporaryGetDisplayNameOrDefault by @cretadn22 in #94302
- Prevent loading older chats while hidden history is shown by @VickyStash in #94444
- Collapse in-flight reconnects by coverage to close the SequentialQueue dedup gap by @adhorodyski in #94210
- Remove getLoginByAccountID usages from getSubmitReportManagerAccountID and prepareRejectMoneyRequestData by @bernhardoj in #92629
- [No QA] Add web crash diagnostics to detect abnormal browser session exits by @sosek108 in #94201
- [NO QA] Reduce unsafe type assertions in tests via createMock helper by @blimpich in #92979
- Rework search input to be a keyword search only by @bernhardoj in #93543
- Fix regressions from [Rules Revamp] Release 1 by @Krishna2323 in #94478
- [Payment due @bernhardoj] Update Home announcements widget with June 2026 product update by @MelvinBot in #94502
- Part 3: Refactor ConfirmModal usage to useConfirmModal in workspace accounting and general pages by @thelullabyy in #93633
- [CP Staging] Fix tag selection mode on RHP by @luacmartins in #94600
- [GPS] Add custom compass to GPSMapView by @GCyganek in #94284
- [CBN] Refactor EnablePayments flow by @VickyStash in #92779
- Show date change in system message when a distance date edit also changes the rate by @c3024 in #94556
- Move from a boolean flag to a timestamp for ResendValidateCode gate by @chuckdries in #93301
- [Payment due @brunovjk] Surface RuleBot in the Agent rules section by @yuwenmemon in #94131
- Android & iOS - Expense - Description field is not visible when focused by @thelullabyy in #94398
- Fix Spend tab flash when backing out of manual expense from Workspaces tab by @MelvinBot in #94515
- Fix duplicate "This field is required" error on manual expense confirmation by @MelvinBot in #94513
- Migrate InteractionManager - batch 3 part 3 by @mrejdak in #94040
- fix: report unread by @annaweber830 in #91940
- Block submitter self-approval Approve badge on Submit workspaces by @MelvinBot in #94553
- Move sentry size analysis upload to deploy step by @rinej in #94039
Full Changelog: 9.4.19-1-staging...9.4.20-0-staging
9.4.19-5
What's Changed
- [NO QA] Fix broken Sentry bundle-size links in deploy comments by @blimpich in #94381
- [No QA] Revise upcoming features AgentZero reference doc by @stephanieelliott in #94388
- [Certinia] R2 PSA: Import page (PSA branch) and CertiniaTagsMappingPage by @thelullabyy in #93899
- [No QA] Split AgentZero upcoming-features roadmap into 8 focused category pages by @MelvinBot in #94403
- [No QA] Docs updates for E/A#80449 invite new users in approval workflow by @MelvinBot in #93612
- 83860 migrate workspace categories settings tags v5 by @huult in #93654
- 83855 migrate ws confirmation misc by @huult in #93851
- migrate SUBSCRIPTION_DOWNGRADE_BLOCKED by @huult in #93658
- [NoQA] Restore render timer on performance tests by @LukasMod in #93573
- Fix Concierge hidden-history hiding unread notification message on cold open by @MelvinBot in #93711
- fix: prevent card admins from inviting company card assignees by @ShridharGoel in #94420
- Unify expense column pickers via COLUMN_AVAILABILITY and align report details columns by @MelvinBot in #94124
- 83858 migrate money request part 3 v2 by @huult in #93402
- [No QA] Reorder unread indicator predicates to short-circuit cheaply by @TMisiukiewicz in #94424
- Fix false "not here" page for reports not in the sidebar (ReportNotFoundGuard/ReportFetchHandler race) by @elirangoshen in #93415
- [NOQA] perf: stabilized chatReport into MoneyRequestReportPreview by @OlimpiaZurek in #93950
- Composition of
WorkspacesListPageby @WojtekBoman in #93293 - Update the policy taxes table to the new style by @luacmartins in #94208
- [#91727] Add Load more pattern to Workspace Workflows approval list by @elirangoshen in #94052
- [No QA] Skip loading unread indicator updater on Android by @TMisiukiewicz in #94428
- Add accessibility labels and text for flip button in new manual expense flow by @thelullabyy in #94409
- Fix O(n²) tag enabled-count in WorkspaceViewTagsPage by @TMisiukiewicz in #94307
- Refactor useSelectionMode report actions to use dynamic verify account by @jmusial in #93715
- [CP Staging] Revert "Open linked message at top" by @mountiny in #94470
- Remove Onyx.connect() usage for ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS as allTransactionViolations from src/libs/actions/IOU/Transaction.ts by @Guccio163 in #91196
- Allow enter for commuter exemptions by @Gonals in #94458
- Recalculate mileage rate when editing distance expense date by @Krishna2323 in #93755
- [Payment due @ahmedGaber93] Update MANAGE_TEAM onboarding: skip stale optimistic writes and navigate from API response by @marcochavezf in #91685
- Update the policy tags table to the new style by @luacmartins in #93855
- [Payment due @ahmedGaber93] Add currency selector to Search footer total spend by @c3024 in #90777
- Fix unresponsive app after Home Recently added View all expenses by @MelvinBot in #94435
- Gate Hold on receipt scan state to prevent unexpected hold error on scanning expenses by @MelvinBot in #94252
- feat: add legal name step subheader, validate PMB addresses, and update address step subheader copy for VBBA by @samranahm in #92289
- Part 9: Remove Onyx.connect() for the key: ONYXKEYS.PERSONAL_DETAILS_LIST by @DylanDylann in #94107
- Display correct unit for commuter exclusions by @Gonals in #94457
- Fix: clear chat iouReportID when deleting an expense report offline by @MelvinBot in #92265
- Update Windows Emoji to Unicode Version 16.0 by @shubham1206agra in #94328
- 🍒 Cherry pick PR #94600 to staging 🍒 by @os-botify[bot] in #94611
Full Changelog: 9.4.18-2...9.4.19-5