Skip to content

FPFNFIXAPEX: preserve keys for closed editable string positions - #2121

Open
aidenybai wants to merge 2 commits into
mainfrom
codex/fpfn-closed-editable-string-positions-84ad
Open

aidenybai wants to merge 2 commits into
mainfrom
codex/fpfn-closed-editable-string-positions-84ad

Conversation

@aidenybai

@aidenybai aidenybai commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

Why

A fixed set of editable text positions can keep position keys when every supported edit preserves those positions. TypeScript-only names must not make a valid editor warn or hide state writes from the detector.

What changed

  • Add the bounded editable-string-position exemption, retaining warnings for reordering, unsupported writers, escapes and provider contradictions.
  • Reuse the shared runtime binding resolver so erased interfaces do not replace actual hook, state or setter bindings. The authored rule, helper and constants remain unchanged by this repair.
  • Add eight exact-diagnostic binding regressions, a paired state-mutation regression, four synthetic corpus files and one synthetic generator entry. Include patch changesets.

Test plan

  • Focused: 402 tests across nine files; package typecheck passed.
  • Full repository: 34,271 passed and 1,118 skipped; all 12 test tasks, 10 type tasks and five build tasks ran with zero cache hits.
  • Lint, format, registry, fuzz smoke, built JSON smoke and diff checks passed.
  • Strict fuzz passed once each for no-array-index-as-key and no-direct-state-mutation, with 500 configured iterations, seed 42 and required target liveness. Numeric statistics were not emitted; these runs do not establish coverage of each new fixture.
  • Selected-rule source checks passed for all six actual corpus files under absent caller settings, matching their declared verdicts. Source checks for the actual generator and its reorder control passed under both explicit React and absent caller settings.

Built API/CLI comparisons used separate unchanged projects with 84 original contexts and six new data contexts. Across default plus explicit target opt-in and targeted profiles, primary warnings changed from 73 to 74 in the first project and from three to four in the second. These changes remove erased-hook false positives and restore closed-grammar warnings; the nonempty same-length reset is not certified as a runtime true positive. All retained diagnostic objects, ordering and CLI identities matched exactly; targeted profiles had no unrelated findings.

Default nonprimary findings changed from six to seven and from three to six, solely through four restored no-direct-state-mutation findings on the erased reverse fixtures. These have focused and corpus coverage. The comparisons used controlled React 19.2.6 metadata without Preact; one authored unit case uses explicit Preact capabilities, so its unit and public outcomes differ. These checks do not establish Preact runtime compatibility.

The staged scan covered 16 code files in 17 repair paths and reported five expected warnings in intentional failure fixtures. Its warning-blocking exit code was one; it reported unknown framework and no React detection, so it is not target-activation or clean-scan evidence.

Remote parity has not run: VERCEL_OIDC_TOKEN or VERCEL_TOKEN, VERCEL_TEAM_ID/VERCEL_ORG_ID, and VERCEL_PROJECT_ID are unavailable. The in-repository evaluator is present; the separate local RDE checkout is unavailable. No remote or local evaluation was attempted.

@pkg-pr-new

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

Copy link
Copy Markdown

Open in StackBlitz

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

commit: 7bbf4dd

@github-actions

github-actions Bot commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Interactive terminal E2E

Terminal Control verified the built CLI at 7bbf4dd 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 18, 2026 14:11

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