Skip to content

FPFNFIXAPEX allow omitted setters in readonly useState destructuring - #1992

Open
aidenybai wants to merge 7 commits into
fix/ref-display-state-commitfrom
codex/audit-omitted-state-setter
Open

aidenybai wants to merge 7 commits into
fix/ref-display-state-commitfrom
codex/audit-omitted-state-setter

Conversation

@aidenybai

@aidenybai aidenybai commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Allow intentional value-only useState destructuring when a readonly local binding omits the setter and the React provider remains supported. Preserve misnamed-setter, binding-write, unsupported-provider and non-destructured-tuple warnings. Extend the bounded numeric-data proof to closed local callers and direct native window listeners while retaining callable extraction, exported-caller, loader, mutation and provider-accessor controls.

Memoize immutable React provider proofs by exact Program, scope, root symbol and require identity. Index numeric export facts once per Program; evaluation positions, recursion and array-prefix checks remain per request. Add provider-mutation, lifetime and deterministic growth regressions. Stacked on #2178 at e3428ee8863acd3e3519f818b9ecddb9d3ee5105; includes patch changesets and the existing performance-test, snapshot-fixture and CLI comparison-timeout repairs.

Validation on committed source 1f7953c59095b1a43bbc0b0ca2a5854ac0eda690: full tests, lint, typecheck, formatting, registry checks, five fresh build tasks with no cached tasks, JSON schema smoke and strict target fuzz with 500 configured iterations, seed 42 and required firing passed. Source review, provider mutation controls and native authored oracles passed. The committed source and all 175 artifacts match the checked build.

Two distinct finite public comparisons were retained: the previous head a78900b→current head, and the actual stacked base e3428ee→current head. Fifty-six authored controls preserve tuple and mutation refusals; only intended primary diagnostic changes occur. Original-head controls add three provider-mutation warnings. Actual-base readonly32/128 workloads remove32/128 warnings and numeric100/500 workloads remove one each; complete unrelated diagnostic objects stay identical. Both comparisons retain all256 general128 diagnostic objects.

All five workload families were profiled cold/hot for each comparison with CPU and rule artifacts. Existing wall thresholds classify all comparisons stable; all CPU10%/RSS20% manual flags are false, with no discarded CPU samples or noise retries. Against the actual base, numeric500 cold time was431.15→350.82ms/hot315.87→281.59ms; general128 was715.57→719.69ms cold/381.00→384.54ms hot. These are finite local measurements, not universal performance parity. Remote parity credentials were unavailable, so remote parity was not run. No merge or release.

@pkg-pr-new

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

Copy link
Copy Markdown

Open in StackBlitz

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

commit: 1f7953c

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Interactive terminal E2E

Terminal Control verified the built CLI at a78900b 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

@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

React Doctor found no new issues. 🎉

Reviewed by React Doctor for commit 1f7953c.

@aidenybai
aidenybai marked this pull request as draft October 17, 2026 02:16
@aidenybai
aidenybai marked this pull request as ready for review October 17, 2026 02:56
@aidenybai
aidenybai marked this pull request as draft October 17, 2026 03:02
@aidenybai
aidenybai marked this pull request as ready for review October 17, 2026 03:43
@aidenybai
aidenybai marked this pull request as draft October 17, 2026 04:05
@aidenybai
aidenybai changed the base branch from main to fix/ref-display-state-commit October 22, 2026 00:15
@aidenybai
aidenybai marked this pull request as draft October 22, 2026 10:24
@aidenybai
aidenybai marked this pull request as ready for review October 22, 2026 13:13

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