Skip to content

FPFNFIXAPEX: recognize fixed imported JSON ordinal lists - #2321

Open
aidenybai wants to merge 15 commits into
mainfrom
codex/closed-json-source-policy-main367-20261101
Open

aidenybai wants to merge 15 commits into
mainfrom
codex/closed-json-source-policy-main367-20261101

Conversation

@aidenybai

@aidenybai aidenybai commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

Imported JSON lists can keep the same item-to-position mapping for a component's lifetime, yet still receive index-key warnings. Recognize the supported ownership path through one private React 16 state cell and Route props to native ordinal text.

The proof covers genuine, zero-attribute React Fragment ancestors; native state-key-count mount gates; and BrowserRouter with a sole fixed string basename. A private request helper may receive one fresh, flat literal options object. Parameter identity and caller scope are preserved, and every final normalized request record must select JSON decoding. Contiguous pure const declarations may precede the helper return or executor request chain. Every initializer, including unused ones, must be certified; dependencies are ordered, references are closed, and the combined declaration count is capped at 12.

A native JSON response may be forwarded inside one exhaustive HTTP-status if/else. Strict equality accepts either operand order against a finite numeric literal. Success forwards the same response data; failure rejects with no argument, a primitive literal, or that response status. Exact response and settlement references remain closed.

Primitive checks reject RegExp and BigInt syntax even when an older parser host represents a RegExp value as null. Legacy request-number behavior is preserved.

A terminal catch may use a synchronous inline arrow that forwards its unchanged error to the native executor reject binding. Expression bodies and single expression/return statement blocks are supported with exact error and reject read-node closure. Logging, recovery and additional statements remain unsupported.

Warnings remain for mutable collections, competing producers, unstable Hook order, escaped state or clients, unknown callers, public parameterized helpers, ambiguous source resolution, and unsupported provider control flow. Prelude declarations still refuse mutable bindings, conditional or nested declarations, bare alias initializers, module bindings as new inputs, and executable initializers. Shared helpers, logging/recovery callbacks, other callback control flow, and default-decoder inference remain unsupported. Existing CSS/LESS filename competition, opaque configuration refusals, Windows path normalization, authoritative current-file bindings, and per-Program cache invalidation are preserved.

This head includes the lexical-binding prerequisite from #2322 and Windows CI timeout from #2324. It reuses the deterministic work checks owned by #2171 and #2167, and bounds each child process in the ordinary three-scan CLI tests. Review the combined tree or land those prerequisites first. Versions remain 0.9.21; no version, lockfile, or workflow changes were added by this follow-up.

Validation on 9604e20c10c4df66301b5f9ffbe3a78509158967:

  • Forced workspace tests: 36,131 passed, 1,119 skipped across seven packages. All 12 test/build tasks executed with zero cache hits.
  • Forced typecheck and build: 10 and 5 successful tasks respectively, with zero cache hits.
  • Focused provider and whole-rule snapshot suites: 419 and 261 passed.
  • Repository lint, formatting, JSON-report schema smoke, and published-dependency checks passed. Existing lint warnings remain.
  • Independent static review accepted the exact three-path forwarding delta; earlier source retains its reviewed qualifications.

All 21 hosted checks passed on this head, including all seven platform jobs and Windows packed-CLI installation. All three preview manifests were verified as 0.9.21, with CLI and ESLint dependencies pointing to this head's Oxlint preview.

Additional independent review found no blocker in the catch-forwarding delta. Provider and leaf suites passed 516 tests locally. A fresh bounded source-rule replay preserved diagnostic counts across all nine workloads; the largest (128 filler modules, 32 maps) measured 7.21 ms versus 1.32 ms for the baseline target rule, with one filler read per file. Exact inline rejection forwarding suppressed the intended finding, while changed-error forwarding retained it. This source-only comparison uses the prior driver and current common helpers; it does not qualify whole-CLI, memory, transitive isolated-base, or corpus-wide performance. Whole-corpus parity and deployment behavior were not evaluated.

@pkg-pr-new

pkg-pr-new Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

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

commit: 9604e20

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Interactive terminal E2E

Terminal Control verified the built CLI at 9604e20 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 November 1, 2026 09:42
@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

React Doctor found no new issues. 🎉

Reviewed by React Doctor for commit 9604e20.

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