Releases: Expensify/App
Releases · Expensify/App
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
9.4.19-5-staging
What's Changed
Full Changelog: 9.4.19-4-staging...9.4.19-5-staging
9.4.19-4-staging
Full Changelog: 9.4.19-3-staging...9.4.19-4-staging
9.4.19-3-staging
Full Changelog: 9.4.19-2-staging...9.4.19-3-staging
9.4.19-1-staging
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
Full Changelog: 9.4.18-0-staging...9.4.19-1-staging
9.4.18-2
What's Changed
- Add Certinia company selector by @ShridharGoel in #93407
- [NO QA] Filter UPDATE_REQUIRED from Sentry error reporting by @rlinoz in #94203
- [No QA] Add tax tracking articles by @stephanieelliott in #94138
- [No QA] Avoid building archived reports ID set in canEditFieldOfMoneyRequest chain by @TMisiukiewicz in #94185
- [NoQA] Remove unused OPEN_AND_SUBMITTED_REPORTS_BY_POLICY_ID derived value by @LukasMod in #94276
- refactor prepareOnboardingOnyxData function to always use hasCompletedGuidedSetupFlow as false in failureData by @daledah in #93790
- [Payment due @eh2077] Update Home Announcements widget with MCP press release by @MelvinBot in #93114
- Update delete workspace error message when frozen expensify cards are present by @jnowakow in #92917
- Scroll the workspace list to the top after creating the first workspace by @wildan-m in #93200
- [CP staging] Revert "feat: remove isNewManualExpenseFlowEnabled beta flag" by @puneetlath in #94312
- Reset text-align in RenderHTML baseStyle and remove dInlineFlex from comment anchors by @MelvinBot in #93625
- Remove all optional connectWithoutView from SplitExpenses and refactor initSplitExpense by @ZhenjaHorbach in #93040
- [No QA] Avoid building archived reports ID set in room/task selector pages by @TMisiukiewicz in #94283
- [Payment due @brunovjk] Show Explain button on receipt scan failed system messages by @Beamanator in #93532
- [No QA] perf: Search S4 useSearchSnapshot data layer by @BartekObudzinski in #93805
- feat: add one-click Google merchant search for card expenses by @samranahm in #93739
- Remove @mention in ad-hoc build GH comment by @arosiclair in #94336
- Fix - Blocked DEW Report Approval Briefly Shows “Approved” State Before Reverting by @FitseTLT in #94204
- [CP Staging] Fix - Android - Expense - Extra space in Change workspace modal, not scrollable in landscape by @jmusial in #94298
- Fix tab navigation not switching after expense submit on cold-start by @sumo-slonik in #92187
- [No QA] Remove unused test drive modal code by @jmusial in #94322
- Android & iOS - Agents - "Create agents to handle your workflow.." sentence is missing by @lorretheboy in #94006
- Add Certinia PSA advanced settings by @ShridharGoel in #93946
- Open linked message at top by @VickyStash in #93403
- [Payment due @brunovjk] Allow several date formats for CSV company cards by @Gonals in #91933
- [No QA] Do a sparse checkout for the validate mobile expensify submodule workflow by @iwiznia in #94196
- [No QA] Fix iOS complete_hybrid_rollout crash by passing APPLE_ID env by @blimpich in #94243
- [CP Staging] Revert: Submit button with manager email prompt by @hungvu193 in #94333
- Remove legacy .woff format font files by @shubham1206agra in #94354
- fix: unable to move per diem to a new report after changing workspace by @daledah in #91030
- fix: Reports - Highlight animation is visible on added expense after duplication by @TaduJR in #89585
- Refactor: remove deprecatedAllTransactions in getTransactionReportName by @linhvovan29546 in #94137
- Revert "fix: Reports - Highlight animation is visible on added expense after duplication" by @blimpich in #94367
- [No QA] Revise Concierge AI capabilities and examples by @stephanieelliott in #94140
Full Changelog: 9.4.17-3...9.4.18-2