[No QA] Merge main into state machine feature branch#94079
[No QA] Merge main into state machine feature branch#94079chuckdries wants to merge 2901 commits into
Conversation
Replace the noop Onyx stub with plain react-native-onyx initialized for the CLI and route storage to MemoryOnlyProvider for headless Bun. Co-authored-by: Cursor <cursoragent@cursor.com>
…bmit-amount-handler perf: extract submitAmount handler and cache submit-only Onyx state
Co-authored-by: ahmedGaber93 <ahmedGaber93@users.noreply.github.com>
Route react-native-onyx through a bundler shim so the standalone CLI gets the real API and MemoryOnlyProvider storage. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Use the local src/types/bun.d.ts shim instead of @types/bun to avoid conflicting global require declarations during repo-wide typecheck. Co-authored-by: Cursor <cursoragent@cursor.com>
[No QA] Upgrade claude-review and deploy blocker workflows to Opus 4.8
Onyx and network modules keep the event loop alive after the PNG is written; call process.exit so CI does not hang waiting for the binary to finish. Co-authored-by: Cursor <cursoragent@cursor.com>
…archAutocompleteList perf: search autocomplete optimization
Add bunfig.toml to discover server-side Bun tests while excluding Jest-owned src/ and the VCR golden render suite. Co-authored-by: Cursor <cursoragent@cursor.com>
Run render.test.ts via default bun test discovery so the compiled-binary golden suite runs with npm run test:bun. Co-authored-by: Cursor <cursoragent@cursor.com>
…stuck-peek Fix stuck Spend sidebar after deleting saved search
…crash Fix `react-native-skia` crash when switching to Old Dot
…rtion buildDefaultTitleFieldList added a 9th @typescript-eslint/no-unsafe-type-assertion violation (via `as unknown as Policy['fieldList']`), exceeding the grandfathered limit of 8 for Policy.ts. Build a complete PolicyReportField so the value is assignable without any assertion. Co-authored-by: Sahil <thesahindia@users.noreply.github.com>
Replace stale #73857E with productLight800 (#76847E) so cartesian chart fixtures match theme-aware goldens after chart chrome color support. Co-authored-by: Cursor <cursoragent@cursor.com>
The tests/ path override is no longer needed now that render.test.ts is included in bunfig discovery. Co-authored-by: Cursor <cursoragent@cursor.com>
Structure VCR bun tests with hierarchical describes, run with --concurrent --max-concurrency 7 on the 8 vCPU CI runner, and extend bun.d.ts with test.serial/concurrent types. Co-authored-by: Cursor <cursoragent@cursor.com>
Reuse npm run test:bun so concurrent test flags live in package.json only. Co-authored-by: Cursor <cursoragent@cursor.com>
|
@neil-marcellini Please 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] |
| const {dispatch} = useMultifactorAuthenticationActions(); | ||
| const {isCancelConfirmVisible} = state; |
There was a problem hiding this comment.
The only merge conflict was imports on this file, and that isCancelConfirmVisible moved from useMultifactorAuthenticationState to useMultifactorAuthenticationInternal's state
There was a problem hiding this comment.
Whoops, just realized I messed up the resolution on the imports
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
| - **Rules** must be enabled on the workspace. | ||
|
|
||
| --- | ||
| 1. In the navigation tabs (on the left on web, on the bottom on mobile), select **Workspaces > [Your Workspace]**. |
There was a problem hiding this comment.
Structure violation: This numbered step appears orphaned above the ## How to create an Agent Rule heading and is a duplicate of step 1 (line 30). Steps must be sequential and grouped under their task heading (HELP_AUTHORING_GUIDELINES.md §5). Remove this stray line.
| 1. In the navigation tabs (on the left on web, on the bottom on mobile), select **Workspaces > [Your Workspace]** | ||
| 2. Click **Rules**. | ||
| 3. In the **Agent Rules** section, click **Add AI Rule**. | ||
| 5. Enter a natural-language description of the behavior you want. |
There was a problem hiding this comment.
Step formatting violation: Step numbering is not sequential (1, 2, 3, 5, 7 — skips 4 and 6). Steps must be sequential per HELP_AUTHORING_GUIDELINES.md §5. Renumber as 1–5.
|
|
||
| ## How to connect with your Approved! partner team | ||
|
|
||
| 1. In the navigation tabs (on the left on web, on the bottom on mobile). |
There was a problem hiding this comment.
Step formatting violation: This step is an incomplete instruction — it states a location with no action. Steps must be action-oriented (HELP_AUTHORING_GUIDELINES.md §5). Either merge it into step 2 (e.g. "In the navigation tabs (on the left on web, on the bottom on mobile), select Account.") or give it a verb.
| - Add examples that demonstrate the intended behavior. | ||
| - Remove unnecessary instructions that may create ambiguity. | ||
| - Add examples that demonstrate the intended behavior. | ||
| - Remove unnecessary instructions that may create ambiguity. |
There was a problem hiding this comment.
Readability violation: These two bullets ("Add examples that demonstrate the intended behavior." and "Remove unnecessary instructions that may create ambiguity.") are duplicated from lines 104–107. Remove the repeated bullets.
| - **Max amount:** Enter a maximum transaction amount. | ||
| 7. Click **Save**. | ||
|
|
||
| Spend rules takes effect immediately and are applied to future transactions on the selected cards. |
There was a problem hiding this comment.
Readability violation: Subject-verb disagreement — "Spend rules takes effect immediately and are applied". Use "Spend rules take effect immediately and are applied" for clarity (HELP_AUTHORING_GUIDELINES.md §1, concise and clear).
| 4. Configure the Spend rule and select the desired **Restriction type**. | ||
| 5. Complete the card issuance process. | ||
|
|
||
| The Spend Rules are applied when the card is issued and is enforced from the card's first transaction. |
There was a problem hiding this comment.
Readability violation: Subject-verb disagreement — "The Spend Rules are applied when the card is issued and is enforced". Should be "...and are enforced from the card's first transaction." Also note inconsistent casing of the feature name throughout (Spend Rules / Spend rules / Spend Rule); pick one and use it consistently per the deterministic writing rule (HELPSITE_NAMING_CONVENTIONS.md).
|
|
||
| --- | ||
|
|
||
| ## How to create Expensify Card Spend rule while issuing a card |
There was a problem hiding this comment.
Readability violation: Heading reads "How to create Expensify Card Spend rule while issuing a card" — missing article. Use "How to create an Expensify Card Spend rule while issuing a card".
|
|
||
| [Learn how to add a new Workspace member](/articles/new-expensify/workspaces/Managing-Workspace-Members#invite-members-to-a-workspace). | ||
|
|
||
| 1. In the navigation tabs (on the left on web, and at the bottom on mobile), click **Workspaces > [Workspace name]**. |
There was a problem hiding this comment.
Navigation phrasing inconsistency: This uses "on the left on web, and at the bottom on mobile" while every other step in this article uses the standard unified form "on the left on web, on the bottom on mobile". Match the unified navigation sentence per HELPSITE_NAMING_CONVENTIONS.md (deterministic writing).
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
📲 Install BuildsAndroid
|
|
HelpDot Documentation Review Overall Assessment PR 94079 is a mechanical branch-sync merge — The Scores Summary Scoring is not applicable for this PR. The HelpDot rubric (Readability, AI Readiness, Style Compliance) evaluates proposed authored documentation changes. This PR proposes no such changes — it only reconciles the feature branch with
Key Findings
Recommendations
Files Reviewed
Note: No inline comments were added because this PR introduces no authored documentation changes. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6a2e7774bb
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| onPress={() => showDatePickerModal()} | ||
| onSubmitEditing={() => showDatePickerModal()} | ||
| onKeyPress={handleInputKeyPress} |
There was a problem hiding this comment.
Reopen the date picker when autoFocus focuses the field
DatePicker still focuses the hidden TextInput when callers pass autoFocus, but focus no longer calls showDatePickerModal; only press/submit/key events do. On screens that mount the picker with autoFocus (for example the expense date, report-field date, and bulk-edit date pages), navigating to the date step now leaves users on a focused, keyboard-disabled input with no calendar opened, whereas the previous onFocus path opened it automatically.
Useful? React with 👍 / 👎.
We had a merge conflict with main.