Skip to content

Fix two CI gates the main merge introduced on Expensify/App#101298 - #72

Merged
sosek108 merged 1 commit into
fix/lhn-search-preview-parityfrom
fix/parity-ci-gates
Sep 24, 2026
Merged

sosek108 merged 1 commit into
fix/lhn-search-preview-parityfrom
fix/parity-ci-gates

Conversation

@sosek108

Copy link
Copy Markdown

Preview of the two code fixes on top of fix/lhn-search-preview-parity (Expensify#101298). Base is the branch the PR runs on, so merging here updates the App PR.

Duplicate dependency (ESLint check)

The two main merges on 2026-09-23 left currentUserAccountID twice in the useCallback deps array in SearchRouter.tsx: this PR added it next to lastActions, and main kept the pre-existing entry further down. react-hooks/exhaustive-deps fails on it at :312.

Removes the entry this PR added, keeps the pre-existing one, so the dependency set is unchanged.

src/components/Search/SearchRouter/SearchRouter.tsx:312:9
  error  React Hook useCallback has a duplicate dependency: 'currentUserAccountID'.

Unused export (Compare knip issues against main)

clearAlternateTextCache was exported for the cold-cache perf scenarios, and knip cannot see its only consumer because tests/perf-test/** is in knip.json's workspace ignore. CI reports PR introduces 1 new knip finding(s) (delta +1).

clearFilteredOptionListCache, the sibling cache clearer in the same barrel, is not flagged for one reason: tests/unit/OptionsListUtilsTest.tsx imports it in the top-level beforeEach. This does the same for the preview cache.

The export stays. The perf test needs it: syncAlternateTextCache returns early while its 20 guarded inputs keep their identity, so without the reset every reassure iteration after the first would measure a Map lookup instead of the resolve path. It has to reset alternateTextCacheInputs too, which only the exported helper does.

Rejected alternatives: an ignoreIssues entry for src/libs/OptionsListUtils/index.ts would blanket-suppress every future export finding in a 3400-line barrel, and un-exporting would force the perf test to import module-level bindings that live in an ignored file, which knip also reports. An @internal tag changes nothing, since knip gates that tag on --production and CI does not pass it.

Verification

  • npx eslint on both files: the duplicate-dependency error is gone. One error remains at :271 (no-unsafe-type-assertion) and it is pre-existing, reproduced on unmodified d9b223cbfb8 and not part of the CI failure.
  • KNIP=true npx knip --reporter json --no-exit-code: 133 findings down to 132, the removed one is exactly src/libs/OptionsListUtils/index.ts::exports::clearAlternateTextCache, zero new findings.
  • npx jest tests/unit/OptionsListUtilsTest.tsx --ci: 343 passed.
  • npm run spell-changed on both files: 0 issues.

Check independent approval stays red here, as it should: the PR still needs a human reviewer.

Head: de1526cec3f off d9b223cbfb8.

@coderabbitai

coderabbitai Bot commented Sep 24, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Essentials

Run ID: 5ef52cdd-ee7a-49fa-886f-1feefc6d10e3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@sosek108
sosek108 merged commit 48a860c into fix/lhn-search-preview-parity Sep 24, 2026
3 of 24 checks passed
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.

1 participant