Skip to content

Conversation

@stephanieelliott
Copy link
Contributor

N/A

Explanation of Change

Fixed Issues

$
PROPOSAL:

Tests

  • Verify that no errors appear in the JS console

Offline tests

QA Steps

// TODO: These must be filled out, or the issue title must include "[No QA]."

  • Verify that no errors appear in the JS console

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android: Native
    • Android: mWeb Chrome
    • iOS: Native
    • iOS: mWeb Safari
    • MacOS: Chrome / Safari
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I verified there are no new alerts related to the canBeMissing param for useOnyx
  • I followed proper code patterns (see Reviewing the code)
    • I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
      • If any non-english text was added/modified, I used JaimeGPT to get English > Spanish translation. I then posted it in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:
    • I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
    • I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • I verified the JSDocs style guidelines (in STYLE.md) were followed
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.ts or at the top of the file that uses the constant) are defined as such
  • I verified that if a function's arguments changed that all usages have also been updated correctly
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))
  • If new assets were added or existing ones were modified, I verified that:
    • The assets are optimized and compressed (for SVG files, run npm run compress-svg)
    • The assets load correctly across all supported platforms.
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:
    • I verified that all the inputs inside a form are aligned with each other.
    • I added Design label and/or tagged @Expensify/design so the design team can review the changes.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
  • If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari

war-in and others added 30 commits February 2, 2026 11:26
…-VacationDelegatePage

Make `VacationDelegatePage` use new `SelectionListWithSections`
…-SearchMultipleSelectionPicker

Make `SearchMultipleSelectionPicker` use new `SelectionListWithSections`
…-SearchSingleSelectionPicker

Make `SearchSingleSelectionPicker` use new `SelectionListWithSections`
Fixed required columns list + Fixed parser for default sortBy and column name parsing
…dynamically-deep-compare

Fix: Cannot navigate duplicated expenses via arrow keys
Add Esc key behavior to Reports search similar to SearchRouter
…D-for-transaction-threads

Handle the preExistingReportID for transaction threads, message threads, and single expense reports
…mission

fix: preserve navigation state when opening settings from Onfido permission flow
The DomainsEmptyStateComponent was using styles.hoveredComponentBG
which maps to a darker shade (productLight300/productDark300).
Changed to styles.highlightBG which maps to the standard cardBG
color (productLight200/productDark200).

Fixes #81180

Co-authored-by: Shawn Borton <shawnborton@users.noreply.github.com>
fix: distance rates not enabled while duplicating a workspace offline
fix: device back button doesn't close FAB menu
fix: remove missing description violation once turn off rule
OSBotify and others added 7 commits February 4, 2026 00:56
…imated-421

[Pre RN 0.83] Update `react-native-reanimated`, `react-native-live-markdown` and `react-native-worklets` to the latest versions
[No QA] ai-reviewer: rule for independent components
Part 1: Refactor ConfirmModal usage to useConfirmModal in workspace feature pages
@stephanieelliott stephanieelliott requested review from a team as code owners February 4, 2026 03:14
@melvin-bot melvin-bot bot requested review from JmillsExpensify and removed request for a team February 4, 2026 03:14
@melvin-bot
Copy link

melvin-bot bot commented Feb 4, 2026

Hey, I noticed you changed some webpack configuration files. This can break production builds. Did you remember to run a production build locally to verify they still work?

@stephanieelliott stephanieelliott merged commit dd52f8c into garrettmknight-patch-6 Feb 4, 2026
269 of 272 checks passed
@melvin-bot melvin-bot bot requested review from chiragsalian and mjasikowski and removed request for a team February 4, 2026 03:14
@melvin-bot
Copy link

melvin-bot bot commented Feb 4, 2026

@mjasikowski @chiragsalian One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@github-actions
Copy link
Contributor

github-actions bot commented Feb 4, 2026

Your New Help changes have been deployed to https://59ccdd16.newhelp.pages.dev ⚡️

**Note:** Early cancellations aren’t available to all customers.
**Note:** This action is permanent and cannot be undone.

**ADD A SCREENSHOT HERE.** Suggestion: Deleting a workspace via the three-dot menu in the Workspaces tab.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing implementation: This placeholder text should be replaced with an actual screenshot showing how to delete a workspace via the three-dot menu. Placeholders reduce the article's usefulness and AI readiness.

# Delete a Workspace
## How to transfer billing ownership in Expensify

To transfer billing responsibility to another **Workspace Admin**, ask that member to [follow these steps to transfer billing ownership](LINK).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Broken link: "(LINK)" is a placeholder and should be replaced with the actual URL to the transfer billing ownership instructions. Broken links harm both user experience and AI readiness.


If you're blocked from updating billing settings, canceling early, or deleting a workspace, it's likely because you’re not the billing owner.

If you are a Workspace Admin, you can transfer billing ownership to yourself by following the steps to [transfer billing ownership](LINK).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Broken link: "(LINK)" is a placeholder and should be replaced with the actual URL to the transfer billing ownership instructions. Broken links harm both user experience and AI readiness.


![Submissions section in Expensify Workflows settings, showing the toggle enabled and Frequency set to By trip]({{site.url}}/assets/images/ExpensifyHelp-WorkspaceSubmissions_ND.png){:width="100%"}

assets/images/ExpensifyHelp-WorkspaceSubmissions_Classic.png
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Formatting violation: This line appears to be orphaned content that should either be removed or properly formatted. It looks like leftover text from editing that doesn't belong in the published article.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 4, 2026

HelpDot Documentation Review

Overall Assessment

This PR contains a merge of main branch that includes 10 documentation files with a mix of new articles, significant updates, and minor corrections. The documentation changes demonstrate strong attention to detail with well-structured content, clear AI-ready metadata, and consistent formatting. Most files follow HelpDot standards closely, though a few areas need attention.

Scores Summary

  • Readability: 8.5/10 - Content is generally clear and well-organized with appropriate reading levels. Some sections could benefit from tighter phrasing and better parallel structure in lists.
  • AI Readiness: 9/10 - Excellent metadata with comprehensive internalScope fields, descriptive keywords, and clear context. Heading hierarchy is consistent across all files.
  • Style Compliance: 8/10 - Strong adherence to Expensify voice and proper terminology (workspace, member, etc.). A few minor inconsistencies with UI labels and formatting conventions need correction.

Key Findings

Positive Aspects:

  • All new articles include the required internalScope field with clear audience and scope definitions
  • Comprehensive FAQ sections address common user questions effectively
  • Consistent use of proper Expensify terminology (workspace, member, etc.)
  • Good use of visual hierarchy with clear section breaks
  • Descriptive, keyword-rich titles that support search and AI understanding

Issues Requiring Attention:

  1. Split-Expenses.md: Title and description mismatch - the description mentions "submit expenses to a workspace or individual" which appears to be copied from Create-an-Expense.md
  2. How-to-Set-Up-Automatic-Report-Submissions.md: Contains a stray image reference on line 46 (assets/images/ExpensifyHelp-WorkspaceSubmissions_Classic.png) that should be removed
  3. Add-a-payment-card-and-view-your-subscription.md: Two broken links marked as "(LINK)" on lines 113 and 123 need to be replaced with actual URLs
  4. Create-an-Expense.md: Minor formatting inconsistency - uses numbered steps with inconsistent indentation in some sections

Minor Style Observations:

  • Some FAQ questions could be more concise (e.g., "Why are reports still submitting automatically after disabling Submissions" could drop the question mark for consistency with other FAQs that don't use them)
  • Occasional repetition between introductory text and section content could be reduced

Recommendations

Priority 1 (Must Fix):

  1. Fix the description in Split-Expenses.md to accurately reflect split expense functionality
  2. Remove the stray image path reference in How-to-Set-Up-Automatic-Report-Submissions.md (line 46)
  3. Replace broken "(LINK)" placeholders in Add-a-payment-card-and-view-your-subscription.md with actual URLs

Priority 2 (Should Fix):
4. Review Create-an-Expense.md for consistent formatting of numbered steps and indentation
5. Ensure all FAQ question titles follow consistent punctuation patterns

Priority 3 (Nice to Have):
6. Consider reducing redundancy between intro paragraphs and first section content
7. Review all button labels and UI text against the current product to ensure accuracy

Files Reviewed

  • Automatically-submit-employee-reports.md: Updated with improved structure (67 additions) - Good quality
  • Export-Expenses-And-Reports.md: Minor typo fix (1 change) - Clean
  • Add-a-payment-card-and-view-your-subscription.md: Major rewrite (107 additions) - Needs link fixes
  • Sage-Intacct-Troubleshooting.md: Content removal (6 deletions) - Clean
  • Claim-and-Verify-a-Domain.md: Substantial updates (35 additions) - Good quality
  • Domain-Admins.md: New article (55 lines) - Excellent quality
  • View-the-Top-Spenders-report.md: New article (110 lines) - Excellent quality
  • Create-an-Expense.md: Rewrite and restructure (63 additions) - Minor formatting issues
  • How-to-Set-Up-Automatic-Report-Submissions.md: New article (94 lines) - Needs cleanup of stray text
  • Split-Expenses.md: New article (124 lines) - Needs description fix

Overall, this documentation update represents strong work with clear improvements to structure, searchability, and user guidance. Addressing the priority items will bring these articles to publication-ready quality.


Expenses with violations—like missing receipts, incorrect categories, or amounts over Workspace limits—won’t be submitted. They’re removed from the current report and moved to a new open report. Once the violation is fixed, they’ll be submitted on the next scheduled date.

## Why are reports still submitting automatically after disabling Submissions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Readability violation: This heading is missing a question mark. FAQ headings should be formatted as complete questions. Change to: "Why are reports still submitting automatically after disabling Submissions?"

@@ -130,7 +130,7 @@ Enter any of the following formulas into the Formula field for each column. Be s
| {report:policyName} | Same as the workspace name. Policy is an older term for workspace.|
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Terminology violation: Use "workspace" instead of "policy" to match Expensify terminology standards. The term "policyName" should be updated to reference "workspaceName" or include a note that "policy" is deprecated terminology.


This feature helps prevent policy violations and ensures accurate expense tracking from the moment of upload.
- Forward your digital receipts to receipts@expensify.com.
- Text a receipt photo to 47777 (US numbers only). Make sure you [add your phone number as a contact method to Expensify](https://new.expensify.com/settings/profile/contact-methods).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Readability violation: "Make sure you" is verbose phrasing. Simplify to: "First, [add your phone number as a contact method to Expensify]..." This improves scannability and reading level.


If you have a private domain (e.g., yourcompany.com), you can claim and verify it in Expensify to manage employee permissions and enable additional security features.

# What you can do with a claimed and verified domain
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing breadcrumb path: This article should include a breadcrumb path below the H1 to improve navigation context and AI readiness. Add: "Settings > Workspaces > Domains" or similar navigation path.

@codecov
Copy link

codecov bot commented Feb 4, 2026

Codecov Report

✅ Changes either increased or maintained existing code coverage, great job!

Files with missing lines Coverage Δ
src/CONFIG.ts 84.37% <ø> (ø)
src/CONST/index.ts 87.39% <100.00%> (ø)
src/ONYXKEYS.ts 100.00% <ø> (ø)
src/SCREENS.ts 100.00% <ø> (ø)
src/components/AvatarCropModal/ImageCropView.tsx 7.14% <ø> (ø)
src/components/Charts/constants.ts 100.00% <100.00%> (ø)
src/components/Charts/font/index.native.ts 100.00% <100.00%> (ø)
src/components/DateIcon.tsx 100.00% <100.00%> (ø)
src/components/DomainsEmptyStateComponent.tsx 100.00% <100.00%> (ø)
src/components/EmployeesSeeTagsAsText/index.tsx 100.00% <100.00%> (ø)
... and 178 more
... and 172 files with indirect coverage changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.