Skip to content

FPFNFIXAPEX recognize stable matcher collection cleanup - #2137

Open
aidenybai wants to merge 3 commits into
mainfrom
codex/fp-stable-matcher-collection-cleanup
Open

aidenybai wants to merge 3 commits into
mainfrom
codex/fp-stable-matcher-collection-cleanup

Conversation

@aidenybai

@aidenybai aidenybai commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Recognize paired native media-query listeners when a class constructs one stable matcher record and iterates it with the same handler during mount and unmount. Record replacement, mutation, escape, mismatched handlers, partial cleanup, and visible provider changes retain the warning.

The corrective update checks selected runtime identifiers before relying on scope reference descriptors. Catch-binding defaults and computed expressions can contain runtime references that the scope index omits. Those missing references now decline the collection exemption. Binding names, erased TypeScript positions, and static property names remain distinct from runtime values; shorthand property values receive the runtime check. The shared scope analyzer stays unchanged.

Synthetic regressions cover catch-binding defaults, erased declarations, runtime provider replacement, and shorthand values. The proof remains limited to supported collection syntax under ordinary provider behavior. It does not establish arbitrary aliases, opaque mutations, or dynamically generated code safe. A harmless unsupported form may conservatively retain a warning.

Validation on the corrective files:

  • All eight local checks passed: build, full tests, types, lint, formatting, registry generation, JSON report smoke, and strict fuzz.
  • Full tests: 34,268 passed, 1,118 skipped. The final fixture-only rerun reused eleven of twelve test tasks; the preceding full run reused five.
  • Lint: no new warnings from the six-file repair. Eight historical synthetic-fixture warnings remain in this PR, alongside 741 baseline warnings.
  • Strict fuzz: 500 configured iterations, seed 42, require-fire enabled; passed. Numeric iteration statistics were not emitted.

The eight-input corrective source comparison restores warnings in four synthetic provider-replacement controls. The nominal pair and complete component source remain quiet. The existing direct-provider warning remains exact. A harmless local-shadow control also returns to the unsupported warning boundary; this is a conservative precision loss, not a demonstrated leak.

The separate built-CLI comparison validates the complete PR against main, using all seven synthetic files and the same target-only configuration. Warnings change 7→6: only the nominal false positive is removed, and the six other whole diagnostic objects remain exact. Both schemaVersion 3 reports cover every file, with no skipped checks and null scores. This main comparison is separate from the corrective source comparison against the previous PR head.

All seven source CI matrix jobs passed for the current head. Five matrix jobs passed 34,268 tests with 1,118 skipped. Node 20 passed 34,265 with 1,121 skipped. Windows passed 34,201 with 1,185 skipped. The twenty-five provider-reference assertions passed on every platform. Packed-install smoke passed on Linux and Windows. Conditional steps and test-task cache reuse remain recorded in the CI logs.

The full-rule sample completed across twenty roots from six repositories and analyzed 1,721 files. All 3,308 diagnostic objects retain their exact content and order in both aggregate and project reports. Every other typed report field is exact except twenty producer commit stamps and forty timing values. The target rule reports zero findings in both runs, so the sample does not establish activation of the collection proof.

Earlier-head comparisons remain historical. These results cover only the measured source, synthetic CLI, and finite sample behavior. They do not close the general mechanism or family. Full-corpus validation remains blocked, and performance remains unmeasured. Historical raw-model evidence remains unavailable and unwaived.

@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@2137
npm i https://pkg.pr.new/oxlint-plugin-react-doctor@2137
npm i https://pkg.pr.new/react-doctor@2137

commit: c004921

@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Interactive terminal E2E

Terminal Control verified the built CLI at c004921 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 19, 2026 09:52

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