Skip to content

FPFNFIXAPEX: Preserve class updates after props equality returns - #1999

Open
aidenybai wants to merge 5 commits into
codex/audit-omitted-state-setterfrom
codex/audit-previous-props-early-return
Open

aidenybai wants to merge 5 commits into
codex/audit-omitted-state-setterfrom
codex/audit-previous-props-early-return

Conversation

@aidenybai

@aidenybai aidenybai commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Why

A direct lifecycle state update guarded by an adjacent return for unchanged props should avoid the did-update warning.

What changed

Recognize the bounded equality-return pattern for a proven native React superclass and readonly previous props. Retain warnings for uncertain ownership, provider mutation, escaped receivers, and unsupported control flow.

Resolve runtime references and writes to the nearest genuine value when erased TypeScript declarations share its name. Keep erased-only fallback and declaration identity intact. Reuse the shared erased-binding, namespace, and runtime-value helpers for conservative provider admission. Shared semantic controls cover imports, parameters, writes, local values, namespaces, and computed keys. Independent regressions and synthetic fuzz controls exercise the rule boundary. The patch changesets cover diagnostic and resolver behavior.

Preserve the original stacked base and incorporate validated parent 1f7953c59095b1a43bbc0b0ca2a5854ac0eda690. Verify the clean merge tree and unchanged child-only files. Merge the parent first.

Test plan

  • Normal merged head f8507661b8efaccb5206dda81e8f00388a85ae08 preserves the actual stacked base 1f7953c59095b1a43bbc0b0ca2a5854ac0eda690. All nine local checks passed on its exact canonical source tree: prepare, uncached full tests, lint, uncached typecheck, format check, registry check, uncached five-package build, JSON schema smoke, and strict scoped fuzzing.
  • Fuzzing configured 500 iterations, seed 42, with target firing required. Numeric firing statistics were not emitted.
  • All 175 compiled artifacts and the actual five package edges match before and after normal commit hooks; no post-commit rebuild changed the validated runtime.

Remote parity was not run because the required Daytona credentials are unavailable; a local RDE checkout is also unavailable. These local controls do not establish repository parity or application runtime behavior.

Main-only CI does not run for this stacked base. Available exact-head checks, review threads and mergeability gate readiness; merge the stacked parent first.

Completed performance and regression review

Exact target and fixed general full-engine comparisons passed. Each workload includes activation plus five cold and five hot timing samples per revision and dedicated CPU captures; raw gzip artifacts and timing rows were independently read back. All four wall cohorts are stable under the fixed 10% plus 250 ms budget; total CPU and RSS manual flags are clear. Every complete unrelated diagnostic and all five project-context fields match. The general workload retains all 256 diagnostics. These are finite local measurements.

Workload Cold median, base → head Hot median, base → head
Authored target 533.4 → 532.4 ms 341.8 → 344.4 ms
General 128 720.5 → 726.2 ms 382.8 → 384.3 ms

Target-specific evidence: the intended target deltas match retained complete primary diagnostic objects or independently activated native per-file counts, including positive and refusal controls.

All available exact-head checks are green, including the natural react-doctor run started after marking this PR ready. The live stacked base and main were rechecked. This PR is ready for review; merge the stacked parent first.

@pkg-pr-new

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

Copy link
Copy Markdown

Open in StackBlitz

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

commit: f850766

@aidenybai
aidenybai marked this pull request as ready for review October 17, 2026 01:52
@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 03:00
@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:51
@aidenybai
aidenybai marked this pull request as draft October 17, 2026 04:05
@aidenybai
aidenybai marked this pull request as ready for review October 17, 2026 06:06
@aidenybai
aidenybai marked this pull request as draft October 22, 2026 12:21
@aidenybai
aidenybai marked this pull request as ready for review October 22, 2026 12:50

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