Skip to content

FPFNFIXAPEX require positive evidence for opaque find predicates - #2154

Open
aidenybai wants to merge 3 commits into
mainfrom
codex/fp-find-positive-predicate-evidence
Open

aidenybai wants to merge 3 commits into
mainfrom
codex/fp-find-positive-predicate-evidence

Conversation

@aidenybai

@aidenybai aidenybai commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Why

A lowercase argument to .find() may be a query object supplied to a collection API. Treating every identifier as an array predicate produces a false warning on cursor operations such as collection.find(query).count().

What changed

  • Require a resolved local predicate or a readonly direct const array origin for opaque lowercase arguments.
  • Preserve that positive evidence when erased TypeScript interfaces or aliases share the predicate, receiver, or alias name.
  • Keep opaque runtime shadows conservative, and retain existing object-query and uppercase-selector boundaries.
  • Add focused controls, a synthetic true-positive corpus fixture and generator case, and patch changesets.

Test plan

  • Focused rule and binding tests: 209 passed across seven files.
  • Full suite: 34,212 passed and 1,118 skipped. Lint, typecheck, formatting, registry checks, five fresh package builds, and JSON-report smoke all passed.
  • Strict fuzz: 500 configured iterations, seed 42, with required firing; command passed. The runner did not print numeric fire totals.
  • All 24 synthetic projects were analyzed in target-only and default CLI/API profiles. Warnings changed 22 at the base to 8 at the original PR head to 11 after repair. The repair restores three erased-binding false negatives; every retained diagnostic object, order, CLI ID and fingerprint stayed exact.
  • Normal commit hooks passed; source and built artifacts still match the frozen validation.
  • Remote parity is unavailable because DAYTONA_API_KEY is unset. Local comparisons use synthetic inputs.

@pkg-pr-new

pkg-pr-new Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/eslint-plugin-react-doctor@2154
npm i https://pkg.pr.new/oxlint-plugin-react-doctor@2154
npm i https://pkg.pr.new/react-doctor@2154

commit: f1d6503

@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Interactive terminal E2E

Terminal Control verified the built CLI at f1d6503 in a real PTY:

  • selected a project interactively and observed Scanning... before the three-second Git delay completed
  • waited for the clean result and exercised the compact report
  • opened copy context and the GitHub Actions confirmation, then cancelled safely

Download the edited MP4 and PNG evidence

@aidenybai
aidenybai marked this pull request as ready for review October 20, 2026 08:04

This branch has not been deployed

No deployments
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